
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

/* Do NOT change the order of those define/include */

/* defining "BENCH" or "STD" */
/* (will impact the .h functions loaded by the .h) */
#define BENCH
#define BITS_PER_REG 64
#define LOG2_BITS_PER_REG 6
/* defining "ORTHO" or not */
#define NO_ORTHO
/* including the architecture specific .h */
#include "STD.h"

/* auxiliary functions */
void sbox__0 (/*inputs*/ DATATYPE a1,DATATYPE a2,DATATYPE a3,DATATYPE a4,DATATYPE a5,DATATYPE a6, /*outputs*/ DATATYPE* out1,DATATYPE* out2,DATATYPE* out3,DATATYPE* out4) {
  
  // Variables declaration
  DATATYPE x1;
  DATATYPE x10;
  DATATYPE x11;
  DATATYPE x12;
  DATATYPE x13;
  DATATYPE x14;
  DATATYPE x15;
  DATATYPE x16;
  DATATYPE x17;
  DATATYPE x18;
  DATATYPE x19;
  DATATYPE x2;
  DATATYPE x20;
  DATATYPE x21;
  DATATYPE x22;
  DATATYPE x23;
  DATATYPE x24;
  DATATYPE x25;
  DATATYPE x26;
  DATATYPE x27;
  DATATYPE x28;
  DATATYPE x29;
  DATATYPE x3;
  DATATYPE x30;
  DATATYPE x31;
  DATATYPE x32;
  DATATYPE x33;
  DATATYPE x34;
  DATATYPE x35;
  DATATYPE x36;
  DATATYPE x37;
  DATATYPE x38;
  DATATYPE x39;
  DATATYPE x4;
  DATATYPE x40;
  DATATYPE x41;
  DATATYPE x42;
  DATATYPE x43;
  DATATYPE x44;
  DATATYPE x45;
  DATATYPE x46;
  DATATYPE x47;
  DATATYPE x48;
  DATATYPE x49;
  DATATYPE x5;
  DATATYPE x50;
  DATATYPE x51;
  DATATYPE x52;
  DATATYPE x53;
  DATATYPE x54;
  DATATYPE x55;
  DATATYPE x56;
  DATATYPE x57;
  DATATYPE x58;
  DATATYPE x59;
  DATATYPE x6;
  DATATYPE x60;
  DATATYPE x61;
  DATATYPE x62;
  DATATYPE x63;
  DATATYPE x7;
  DATATYPE x8;
  DATATYPE x9;


  // Instructions (body)
  x1 = NOT(a4);
  x2 = NOT(a1);
  x3 = XOR(a3,a4);
  x4 = XOR(x2,x3);
  x5 = OR(x2,a3);
  x6 = AND(x1,x5);
  x7 = OR(x6,a6);
  x8 = XOR(x7,x4);
  x9 = OR(x2,x1);
  x10 = AND(x9,a6);
  x11 = XOR(x10,x7);
  x12 = OR(x11,a2);
  x13 = XOR(x12,x8);
  x14 = XOR(x13,x9);
  x15 = OR(x14,a6);
  x16 = XOR(x15,x1);
  x17 = NOT(x14);
  x18 = AND(x3,x17);
  x19 = OR(x18,a2);
  x20 = XOR(x19,x16);
  x21 = OR(x20,a5);
  x22 = XOR(x21,x13);
  *out4 = x22;
  x23 = OR(x4,a3);
  x24 = NOT(x23);
  x25 = OR(x24,a6);
  x26 = XOR(x25,x6);
  x27 = AND(x8,x1);
  x28 = OR(x27,a2);
  x29 = XOR(x28,x26);
  x30 = OR(x8,x1);
  x31 = XOR(x6,x30);
  x32 = AND(x14,x5);
  x33 = XOR(x8,x32);
  x34 = AND(x33,a2);
  x35 = XOR(x34,x31);
  x36 = OR(x35,a5);
  x37 = XOR(x36,x29);
  *out1 = x37;
  x38 = AND(x10,a3);
  x39 = OR(x4,x38);
  x40 = AND(x33,a3);
  x41 = XOR(x25,x40);
  x42 = OR(x41,a2);
  x43 = XOR(x42,x39);
  x44 = OR(x26,a3);
  x45 = XOR(x14,x44);
  x46 = OR(x8,a1);
  x47 = XOR(x20,x46);
  x48 = OR(x47,a2);
  x49 = XOR(x48,x45);
  x50 = AND(x49,a5);
  x51 = XOR(x50,x43);
  *out2 = x51;
  x52 = XOR(x40,x8);
  x53 = XOR(x11,a3);
  x54 = AND(x5,x53);
  x55 = OR(x54,a2);
  x56 = XOR(x55,x52);
  x57 = OR(x4,a6);
  x58 = XOR(x38,x57);
  x59 = AND(x56,x13);
  x60 = AND(x59,a2);
  x61 = XOR(x60,x58);
  x62 = AND(x61,a5);
  x63 = XOR(x62,x56);
  *out3 = x63;

}

void sbox__1 (/*inputs*/ DATATYPE a1,DATATYPE a2,DATATYPE a3,DATATYPE a4,DATATYPE a5,DATATYPE a6, /*outputs*/ DATATYPE* out1,DATATYPE* out2,DATATYPE* out3,DATATYPE* out4) {
  
  // Variables declaration
  DATATYPE x1;
  DATATYPE x10;
  DATATYPE x11;
  DATATYPE x12;
  DATATYPE x13;
  DATATYPE x14;
  DATATYPE x15;
  DATATYPE x16;
  DATATYPE x17;
  DATATYPE x18;
  DATATYPE x19;
  DATATYPE x2;
  DATATYPE x20;
  DATATYPE x21;
  DATATYPE x22;
  DATATYPE x23;
  DATATYPE x24;
  DATATYPE x25;
  DATATYPE x26;
  DATATYPE x27;
  DATATYPE x28;
  DATATYPE x29;
  DATATYPE x3;
  DATATYPE x30;
  DATATYPE x31;
  DATATYPE x32;
  DATATYPE x33;
  DATATYPE x34;
  DATATYPE x35;
  DATATYPE x36;
  DATATYPE x37;
  DATATYPE x38;
  DATATYPE x39;
  DATATYPE x4;
  DATATYPE x40;
  DATATYPE x41;
  DATATYPE x42;
  DATATYPE x43;
  DATATYPE x44;
  DATATYPE x45;
  DATATYPE x46;
  DATATYPE x47;
  DATATYPE x48;
  DATATYPE x49;
  DATATYPE x5;
  DATATYPE x50;
  DATATYPE x51;
  DATATYPE x52;
  DATATYPE x53;
  DATATYPE x54;
  DATATYPE x55;
  DATATYPE x56;
  DATATYPE x6;
  DATATYPE x7;
  DATATYPE x8;
  DATATYPE x9;


  // Instructions (body)
  x1 = NOT(a5);
  x2 = NOT(a1);
  x3 = XOR(a6,a5);
  x4 = XOR(x2,x3);
  x5 = XOR(a2,x4);
  x6 = OR(x1,a6);
  x7 = OR(x2,x6);
  x8 = AND(x7,a2);
  x9 = XOR(x8,a6);
  x10 = AND(x9,a3);
  x11 = XOR(x10,x5);
  x12 = AND(x9,a2);
  x13 = XOR(x6,a5);
  x14 = OR(x13,a3);
  x15 = XOR(x14,x12);
  x16 = AND(x15,a4);
  x17 = XOR(x16,x11);
  *out2 = x17;
  x18 = OR(a1,a5);
  x19 = OR(x18,a6);
  x20 = XOR(x19,x13);
  x21 = XOR(a2,x20);
  x22 = OR(x4,a6);
  x23 = AND(x17,x22);
  x24 = OR(x23,a3);
  x25 = XOR(x24,x21);
  x26 = OR(x2,a6);
  x27 = AND(x2,a5);
  x28 = OR(x27,a2);
  x29 = XOR(x28,x26);
  x30 = XOR(x27,x3);
  x31 = XOR(x19,x2);
  x32 = AND(x31,a2);
  x33 = XOR(x32,x30);
  x34 = AND(x33,a3);
  x35 = XOR(x34,x29);
  x36 = OR(x35,a4);
  x37 = XOR(x36,x25);
  *out3 = x37;
  x38 = AND(x32,x21);
  x39 = XOR(x5,x38);
  x40 = OR(x15,a1);
  x41 = XOR(x13,x40);
  x42 = OR(x41,a3);
  x43 = XOR(x42,x39);
  x44 = OR(x41,x28);
  x45 = AND(x44,a4);
  x46 = XOR(x45,x43);
  *out1 = x46;
  x47 = AND(x21,x19);
  x48 = XOR(x26,x47);
  x49 = AND(x33,a2);
  x50 = XOR(x21,x49);
  x51 = AND(x50,a3);
  x52 = XOR(x51,x48);
  x53 = AND(x28,x18);
  x54 = AND(x50,x53);
  x55 = OR(x54,a4);
  x56 = XOR(x55,x52);
  *out4 = x56;

}

void sbox__2 (/*inputs*/ DATATYPE a1,DATATYPE a2,DATATYPE a3,DATATYPE a4,DATATYPE a5,DATATYPE a6, /*outputs*/ DATATYPE* out1,DATATYPE* out2,DATATYPE* out3,DATATYPE* out4) {
  
  // Variables declaration
  DATATYPE x1;
  DATATYPE x10;
  DATATYPE x11;
  DATATYPE x12;
  DATATYPE x13;
  DATATYPE x14;
  DATATYPE x15;
  DATATYPE x16;
  DATATYPE x17;
  DATATYPE x18;
  DATATYPE x19;
  DATATYPE x2;
  DATATYPE x20;
  DATATYPE x21;
  DATATYPE x22;
  DATATYPE x23;
  DATATYPE x24;
  DATATYPE x25;
  DATATYPE x26;
  DATATYPE x27;
  DATATYPE x28;
  DATATYPE x29;
  DATATYPE x3;
  DATATYPE x30;
  DATATYPE x31;
  DATATYPE x32;
  DATATYPE x33;
  DATATYPE x34;
  DATATYPE x35;
  DATATYPE x36;
  DATATYPE x37;
  DATATYPE x38;
  DATATYPE x39;
  DATATYPE x4;
  DATATYPE x40;
  DATATYPE x41;
  DATATYPE x42;
  DATATYPE x43;
  DATATYPE x44;
  DATATYPE x45;
  DATATYPE x46;
  DATATYPE x47;
  DATATYPE x48;
  DATATYPE x49;
  DATATYPE x5;
  DATATYPE x50;
  DATATYPE x51;
  DATATYPE x52;
  DATATYPE x53;
  DATATYPE x54;
  DATATYPE x55;
  DATATYPE x56;
  DATATYPE x57;
  DATATYPE x6;
  DATATYPE x7;
  DATATYPE x8;
  DATATYPE x9;


  // Instructions (body)
  x1 = NOT(a5);
  x2 = NOT(a6);
  x3 = AND(a3,a5);
  x4 = XOR(a6,x3);
  x5 = AND(x1,a4);
  x6 = XOR(x5,x4);
  x7 = XOR(a2,x6);
  x8 = AND(x1,a3);
  x9 = XOR(x2,a5);
  x10 = OR(x9,a4);
  x11 = XOR(x10,x8);
  x12 = AND(x11,x7);
  x13 = XOR(x11,a5);
  x14 = OR(x7,x13);
  x15 = AND(x14,a4);
  x16 = XOR(x15,x12);
  x17 = AND(x16,a2);
  x18 = XOR(x17,x11);
  x19 = AND(x18,a1);
  x20 = XOR(x19,x7);
  *out4 = x20;
  x21 = XOR(a4,a3);
  x22 = XOR(x9,x21);
  x23 = OR(x4,x2);
  x24 = XOR(x8,x23);
  x25 = OR(x24,a2);
  x26 = XOR(x25,x22);
  x27 = XOR(x23,a6);
  x28 = OR(a4,x27);
  x29 = XOR(x15,a3);
  x30 = OR(x5,x29);
  x31 = OR(x30,a2);
  x32 = XOR(x31,x28);
  x33 = OR(x32,a1);
  x34 = XOR(x33,x26);
  *out1 = x34;
  x35 = XOR(x9,a3);
  x36 = OR(x5,x35);
  x37 = OR(x29,x4);
  x38 = XOR(a4,x37);
  x39 = OR(x38,a2);
  x40 = XOR(x39,x36);
  x41 = AND(x11,a6);
  x42 = OR(x6,x41);
  x43 = XOR(x38,x34);
  x44 = XOR(x41,x43);
  x45 = AND(x44,a2);
  x46 = XOR(x45,x42);
  x47 = OR(x46,a1);
  x48 = XOR(x47,x40);
  *out3 = x48;
  x49 = OR(x38,x2);
  x50 = XOR(x13,x49);
  x51 = XOR(x28,x27);
  x52 = OR(x51,a2);
  x53 = XOR(x52,x50);
  x54 = AND(x23,x12);
  x55 = AND(x52,x54);
  x56 = OR(x55,a1);
  x57 = XOR(x56,x53);
  *out2 = x57;

}

void sbox__3 (/*inputs*/ DATATYPE a1,DATATYPE a2,DATATYPE a3,DATATYPE a4,DATATYPE a5,DATATYPE a6, /*outputs*/ DATATYPE* out1,DATATYPE* out2,DATATYPE* out3,DATATYPE* out4) {
  
  // Variables declaration
  DATATYPE x1;
  DATATYPE x10;
  DATATYPE x11;
  DATATYPE x12;
  DATATYPE x13;
  DATATYPE x14;
  DATATYPE x15;
  DATATYPE x16;
  DATATYPE x17;
  DATATYPE x18;
  DATATYPE x19;
  DATATYPE x2;
  DATATYPE x20;
  DATATYPE x21;
  DATATYPE x22;
  DATATYPE x23;
  DATATYPE x24;
  DATATYPE x25;
  DATATYPE x26;
  DATATYPE x27;
  DATATYPE x28;
  DATATYPE x29;
  DATATYPE x3;
  DATATYPE x30;
  DATATYPE x31;
  DATATYPE x32;
  DATATYPE x33;
  DATATYPE x34;
  DATATYPE x35;
  DATATYPE x36;
  DATATYPE x37;
  DATATYPE x38;
  DATATYPE x39;
  DATATYPE x4;
  DATATYPE x40;
  DATATYPE x41;
  DATATYPE x42;
  DATATYPE x5;
  DATATYPE x6;
  DATATYPE x7;
  DATATYPE x8;
  DATATYPE x9;


  // Instructions (body)
  x1 = NOT(a1);
  x2 = NOT(a3);
  x3 = OR(a3,a1);
  x4 = AND(x3,a5);
  x5 = XOR(x4,x1);
  x6 = OR(a3,a2);
  x7 = XOR(x6,x5);
  x8 = AND(a5,a1);
  x9 = XOR(x3,x8);
  x10 = AND(x9,a2);
  x11 = XOR(x10,a5);
  x12 = AND(x11,a4);
  x13 = XOR(x12,x7);
  x14 = XOR(x4,x2);
  x15 = AND(x14,a2);
  x16 = XOR(x15,x9);
  x17 = AND(x14,x5);
  x18 = XOR(x2,a5);
  x19 = OR(x18,a2);
  x20 = XOR(x19,x17);
  x21 = OR(x20,a4);
  x22 = XOR(x21,x16);
  x23 = AND(x22,a6);
  x24 = XOR(x23,x13);
  *out2 = x24;
  x25 = NOT(x13);
  x26 = OR(x22,a6);
  x27 = XOR(x26,x25);
  *out1 = x27;
  x28 = AND(x11,a2);
  x29 = XOR(x17,x28);
  x30 = XOR(x10,a3);
  x31 = XOR(x19,x30);
  x32 = AND(x31,a4);
  x33 = XOR(x32,x29);
  x34 = XOR(x33,x25);
  x35 = AND(x34,a2);
  x36 = XOR(x35,x24);
  x37 = OR(x34,a4);
  x38 = XOR(x37,x36);
  x39 = AND(x38,a6);
  x40 = XOR(x39,x33);
  *out4 = x40;
  x41 = XOR(x38,x26);
  x42 = XOR(x40,x41);
  *out3 = x42;

}

void sbox__4 (/*inputs*/ DATATYPE a1,DATATYPE a2,DATATYPE a3,DATATYPE a4,DATATYPE a5,DATATYPE a6, /*outputs*/ DATATYPE* out1,DATATYPE* out2,DATATYPE* out3,DATATYPE* out4) {
  
  // Variables declaration
  DATATYPE x1;
  DATATYPE x10;
  DATATYPE x11;
  DATATYPE x12;
  DATATYPE x13;
  DATATYPE x14;
  DATATYPE x15;
  DATATYPE x16;
  DATATYPE x17;
  DATATYPE x18;
  DATATYPE x19;
  DATATYPE x2;
  DATATYPE x20;
  DATATYPE x21;
  DATATYPE x22;
  DATATYPE x23;
  DATATYPE x24;
  DATATYPE x25;
  DATATYPE x26;
  DATATYPE x27;
  DATATYPE x28;
  DATATYPE x29;
  DATATYPE x3;
  DATATYPE x30;
  DATATYPE x31;
  DATATYPE x32;
  DATATYPE x33;
  DATATYPE x34;
  DATATYPE x35;
  DATATYPE x36;
  DATATYPE x37;
  DATATYPE x38;
  DATATYPE x39;
  DATATYPE x4;
  DATATYPE x40;
  DATATYPE x41;
  DATATYPE x42;
  DATATYPE x43;
  DATATYPE x44;
  DATATYPE x45;
  DATATYPE x46;
  DATATYPE x47;
  DATATYPE x48;
  DATATYPE x49;
  DATATYPE x5;
  DATATYPE x50;
  DATATYPE x51;
  DATATYPE x52;
  DATATYPE x53;
  DATATYPE x54;
  DATATYPE x55;
  DATATYPE x56;
  DATATYPE x57;
  DATATYPE x58;
  DATATYPE x59;
  DATATYPE x6;
  DATATYPE x60;
  DATATYPE x61;
  DATATYPE x62;
  DATATYPE x7;
  DATATYPE x8;
  DATATYPE x9;


  // Instructions (body)
  x1 = NOT(a6);
  x2 = NOT(a3);
  x3 = OR(x2,x1);
  x4 = XOR(a4,x3);
  x5 = AND(x3,a1);
  x6 = XOR(x5,x4);
  x7 = OR(a4,a6);
  x8 = XOR(a3,x7);
  x9 = OR(x7,a3);
  x10 = OR(x9,a1);
  x11 = XOR(x10,x8);
  x12 = AND(x11,a5);
  x13 = XOR(x12,x6);
  x14 = NOT(x4);
  x15 = AND(a6,x14);
  x16 = OR(x15,a1);
  x17 = XOR(x16,x8);
  x18 = OR(x17,a5);
  x19 = XOR(x18,x10);
  x20 = OR(x19,a2);
  x21 = XOR(x20,x13);
  *out3 = x21;
  x22 = OR(x15,x2);
  x23 = XOR(a6,x22);
  x24 = XOR(x22,a4);
  x25 = AND(x24,a1);
  x26 = XOR(x25,x23);
  x27 = XOR(x11,a1);
  x28 = AND(x22,x27);
  x29 = OR(x28,a5);
  x30 = XOR(x29,x26);
  x31 = OR(x27,a4);
  x32 = NOT(x31);
  x33 = OR(x32,a2);
  x34 = XOR(x33,x30);
  *out2 = x34;
  x35 = XOR(x15,x2);
  x36 = AND(x35,a1);
  x37 = XOR(x36,x14);
  x38 = XOR(x7,x5);
  x39 = AND(x34,x38);
  x40 = OR(x39,a5);
  x41 = XOR(x40,x37);
  x42 = XOR(x5,x2);
  x43 = AND(x16,x42);
  x44 = AND(x27,x4);
  x45 = AND(x44,a5);
  x46 = XOR(x45,x43);
  x47 = OR(x46,a2);
  x48 = XOR(x47,x41);
  *out1 = x48;
  x49 = AND(x48,x24);
  x50 = XOR(x5,x49);
  x51 = XOR(x30,x11);
  x52 = OR(x50,x51);
  x53 = AND(x52,a5);
  x54 = XOR(x53,x50);
  x55 = XOR(x19,x14);
  x56 = XOR(x34,x55);
  x57 = XOR(x16,x4);
  x58 = AND(x30,x57);
  x59 = AND(x58,a5);
  x60 = XOR(x59,x56);
  x61 = OR(x60,a2);
  x62 = XOR(x61,x54);
  *out4 = x62;

}

void sbox__5 (/*inputs*/ DATATYPE a1,DATATYPE a2,DATATYPE a3,DATATYPE a4,DATATYPE a5,DATATYPE a6, /*outputs*/ DATATYPE* out1,DATATYPE* out2,DATATYPE* out3,DATATYPE* out4) {
  
  // Variables declaration
  DATATYPE x1;
  DATATYPE x10;
  DATATYPE x11;
  DATATYPE x12;
  DATATYPE x13;
  DATATYPE x14;
  DATATYPE x15;
  DATATYPE x16;
  DATATYPE x17;
  DATATYPE x18;
  DATATYPE x19;
  DATATYPE x2;
  DATATYPE x20;
  DATATYPE x21;
  DATATYPE x22;
  DATATYPE x23;
  DATATYPE x24;
  DATATYPE x25;
  DATATYPE x26;
  DATATYPE x27;
  DATATYPE x28;
  DATATYPE x29;
  DATATYPE x3;
  DATATYPE x30;
  DATATYPE x31;
  DATATYPE x32;
  DATATYPE x33;
  DATATYPE x34;
  DATATYPE x35;
  DATATYPE x36;
  DATATYPE x37;
  DATATYPE x38;
  DATATYPE x39;
  DATATYPE x4;
  DATATYPE x40;
  DATATYPE x41;
  DATATYPE x42;
  DATATYPE x43;
  DATATYPE x44;
  DATATYPE x45;
  DATATYPE x46;
  DATATYPE x47;
  DATATYPE x48;
  DATATYPE x49;
  DATATYPE x5;
  DATATYPE x50;
  DATATYPE x51;
  DATATYPE x52;
  DATATYPE x53;
  DATATYPE x54;
  DATATYPE x55;
  DATATYPE x56;
  DATATYPE x57;
  DATATYPE x6;
  DATATYPE x7;
  DATATYPE x8;
  DATATYPE x9;


  // Instructions (body)
  x1 = NOT(a2);
  x2 = NOT(a5);
  x3 = XOR(a6,a2);
  x4 = XOR(x2,x3);
  x5 = XOR(a1,x4);
  x6 = AND(a6,a5);
  x7 = OR(x1,x6);
  x8 = AND(x5,a5);
  x9 = AND(x8,a1);
  x10 = XOR(x9,x7);
  x11 = AND(x10,a4);
  x12 = XOR(x11,x5);
  x13 = XOR(x10,a6);
  x14 = AND(a1,x13);
  x15 = AND(a6,a2);
  x16 = XOR(a5,x15);
  x17 = AND(x16,a1);
  x18 = XOR(x17,x2);
  x19 = OR(x18,a4);
  x20 = XOR(x19,x14);
  x21 = AND(x20,a3);
  x22 = XOR(x21,x12);
  *out2 = x22;
  x23 = XOR(x18,a6);
  x24 = AND(x23,a1);
  x25 = XOR(x24,a5);
  x26 = XOR(x17,a2);
  x27 = OR(x6,x26);
  x28 = AND(x27,a4);
  x29 = XOR(x28,x25);
  x30 = NOT(x26);
  x31 = OR(x29,a6);
  x32 = NOT(x31);
  x33 = AND(x32,a4);
  x34 = XOR(x33,x30);
  x35 = AND(x34,a3);
  x36 = XOR(x35,x29);
  *out4 = x36;
  x37 = XOR(x34,x6);
  x38 = AND(x23,a5);
  x39 = XOR(x5,x38);
  x40 = OR(x39,a4);
  x41 = XOR(x40,x37);
  x42 = OR(x24,x16);
  x43 = XOR(x1,x42);
  x44 = XOR(x24,x15);
  x45 = XOR(x31,x44);
  x46 = OR(x45,a4);
  x47 = XOR(x46,x43);
  x48 = OR(x47,a3);
  x49 = XOR(x48,x41);
  *out1 = x49;
  x50 = OR(x38,x5);
  x51 = XOR(x6,x50);
  x52 = AND(x31,x8);
  x53 = OR(x52,a4);
  x54 = XOR(x53,x51);
  x55 = AND(x43,x30);
  x56 = OR(x55,a3);
  x57 = XOR(x56,x54);
  *out3 = x57;

}

void sbox__6 (/*inputs*/ DATATYPE a1,DATATYPE a2,DATATYPE a3,DATATYPE a4,DATATYPE a5,DATATYPE a6, /*outputs*/ DATATYPE* out1,DATATYPE* out2,DATATYPE* out3,DATATYPE* out4) {
  
  // Variables declaration
  DATATYPE x1;
  DATATYPE x10;
  DATATYPE x11;
  DATATYPE x12;
  DATATYPE x13;
  DATATYPE x14;
  DATATYPE x15;
  DATATYPE x16;
  DATATYPE x17;
  DATATYPE x18;
  DATATYPE x19;
  DATATYPE x2;
  DATATYPE x20;
  DATATYPE x21;
  DATATYPE x22;
  DATATYPE x23;
  DATATYPE x24;
  DATATYPE x25;
  DATATYPE x26;
  DATATYPE x27;
  DATATYPE x28;
  DATATYPE x29;
  DATATYPE x3;
  DATATYPE x30;
  DATATYPE x31;
  DATATYPE x32;
  DATATYPE x33;
  DATATYPE x34;
  DATATYPE x35;
  DATATYPE x36;
  DATATYPE x37;
  DATATYPE x38;
  DATATYPE x39;
  DATATYPE x4;
  DATATYPE x40;
  DATATYPE x41;
  DATATYPE x42;
  DATATYPE x43;
  DATATYPE x44;
  DATATYPE x45;
  DATATYPE x46;
  DATATYPE x47;
  DATATYPE x48;
  DATATYPE x49;
  DATATYPE x5;
  DATATYPE x50;
  DATATYPE x51;
  DATATYPE x52;
  DATATYPE x53;
  DATATYPE x54;
  DATATYPE x55;
  DATATYPE x56;
  DATATYPE x57;
  DATATYPE x6;
  DATATYPE x7;
  DATATYPE x8;
  DATATYPE x9;


  // Instructions (body)
  x1 = NOT(a2);
  x2 = NOT(a5);
  x3 = AND(a4,a2);
  x4 = XOR(a5,x3);
  x5 = XOR(a3,x4);
  x6 = AND(x4,a4);
  x7 = XOR(a2,x6);
  x8 = AND(x7,a3);
  x9 = XOR(x8,a1);
  x10 = OR(x9,a6);
  x11 = XOR(x10,x5);
  x12 = AND(x2,a4);
  x13 = OR(a2,x12);
  x14 = OR(x2,a2);
  x15 = AND(x14,a3);
  x16 = XOR(x15,x13);
  x17 = XOR(x11,x6);
  x18 = OR(x17,a6);
  x19 = XOR(x18,x16);
  x20 = AND(x19,a1);
  x21 = XOR(x20,x11);
  *out1 = x21;
  x22 = OR(x21,a2);
  x23 = XOR(x6,x22);
  x24 = XOR(x15,x23);
  x25 = XOR(x6,x5);
  x26 = OR(x12,x25);
  x27 = OR(x26,a6);
  x28 = XOR(x27,x24);
  x29 = AND(x19,x1);
  x30 = AND(x26,x23);
  x31 = AND(x30,a6);
  x32 = XOR(x31,x29);
  x33 = OR(x32,a1);
  x34 = XOR(x33,x28);
  *out4 = x34;
  x35 = AND(x16,a4);
  x36 = OR(x1,x35);
  x37 = AND(x36,a6);
  x38 = XOR(x37,x11);
  x39 = AND(x13,a4);
  x40 = OR(x7,a3);
  x41 = XOR(x40,x39);
  x42 = OR(x24,x1);
  x43 = OR(x42,a6);
  x44 = XOR(x43,x41);
  x45 = OR(x44,a1);
  x46 = XOR(x45,x38);
  *out2 = x46;
  x47 = XOR(x44,x8);
  x48 = XOR(x15,x6);
  x49 = OR(x48,a6);
  x50 = XOR(x49,x47);
  x51 = XOR(x44,x19);
  x52 = XOR(x25,a4);
  x53 = AND(x46,x52);
  x54 = AND(x53,a6);
  x55 = XOR(x54,x51);
  x56 = OR(x55,a1);
  x57 = XOR(x56,x50);
  *out3 = x57;

}

void sbox__7 (/*inputs*/ DATATYPE a1,DATATYPE a2,DATATYPE a3,DATATYPE a4,DATATYPE a5,DATATYPE a6, /*outputs*/ DATATYPE* out1,DATATYPE* out2,DATATYPE* out3,DATATYPE* out4) {
  
  // Variables declaration
  DATATYPE x1;
  DATATYPE x10;
  DATATYPE x11;
  DATATYPE x12;
  DATATYPE x13;
  DATATYPE x14;
  DATATYPE x15;
  DATATYPE x16;
  DATATYPE x17;
  DATATYPE x18;
  DATATYPE x19;
  DATATYPE x2;
  DATATYPE x20;
  DATATYPE x21;
  DATATYPE x22;
  DATATYPE x23;
  DATATYPE x24;
  DATATYPE x25;
  DATATYPE x26;
  DATATYPE x27;
  DATATYPE x28;
  DATATYPE x29;
  DATATYPE x3;
  DATATYPE x30;
  DATATYPE x31;
  DATATYPE x32;
  DATATYPE x33;
  DATATYPE x34;
  DATATYPE x35;
  DATATYPE x36;
  DATATYPE x37;
  DATATYPE x38;
  DATATYPE x39;
  DATATYPE x4;
  DATATYPE x40;
  DATATYPE x41;
  DATATYPE x42;
  DATATYPE x43;
  DATATYPE x44;
  DATATYPE x45;
  DATATYPE x46;
  DATATYPE x47;
  DATATYPE x48;
  DATATYPE x49;
  DATATYPE x5;
  DATATYPE x50;
  DATATYPE x51;
  DATATYPE x52;
  DATATYPE x53;
  DATATYPE x54;
  DATATYPE x6;
  DATATYPE x7;
  DATATYPE x8;
  DATATYPE x9;


  // Instructions (body)
  x1 = NOT(a1);
  x2 = NOT(a4);
  x3 = XOR(x1,a3);
  x4 = OR(x1,a3);
  x5 = XOR(x2,x4);
  x6 = OR(x5,a5);
  x7 = XOR(x6,x3);
  x8 = OR(x5,x1);
  x9 = XOR(x8,x2);
  x10 = AND(x9,a5);
  x11 = XOR(x10,x8);
  x12 = AND(x11,a2);
  x13 = XOR(x12,x7);
  x14 = XOR(x9,x6);
  x15 = AND(x9,x3);
  x16 = AND(x8,a5);
  x17 = XOR(x16,x15);
  x18 = OR(x17,a2);
  x19 = XOR(x18,x14);
  x20 = OR(x19,a6);
  x21 = XOR(x20,x13);
  *out1 = x21;
  x22 = OR(x3,a5);
  x23 = AND(x2,x22);
  x24 = NOT(a3);
  x25 = AND(x8,x24);
  x26 = AND(x4,a5);
  x27 = XOR(x26,x25);
  x28 = OR(x27,a2);
  x29 = XOR(x28,x23);
  x30 = AND(x29,a6);
  x31 = XOR(x30,x13);
  *out4 = x31;
  x32 = XOR(x6,x5);
  x33 = XOR(x22,x32);
  x34 = OR(x13,a4);
  x35 = AND(x34,a2);
  x36 = XOR(x35,x33);
  x37 = AND(x33,a1);
  x38 = XOR(x8,x37);
  x39 = XOR(x23,a1);
  x40 = AND(x7,x39);
  x41 = AND(x40,a2);
  x42 = XOR(x41,x38);
  x43 = OR(x42,a6);
  x44 = XOR(x43,x36);
  *out3 = x44;
  x45 = XOR(x10,a1);
  x46 = XOR(x22,x45);
  x47 = NOT(x7);
  x48 = AND(x8,x47);
  x49 = OR(x48,a2);
  x50 = XOR(x49,x46);
  x51 = XOR(x29,x19);
  x52 = OR(x38,x51);
  x53 = AND(x52,a6);
  x54 = XOR(x53,x50);
  *out2 = x54;

}

/* main function */
void des__ (/*inputs*/ DATATYPE plaintext[64],DATATYPE key[64], /*outputs*/ DATATYPE ciphered[64]) {
  
  // Variables declaration
  DATATYPE des_single__0_sbox_in__0__1;
  DATATYPE des_single__0_sbox_in__0__2;
  DATATYPE des_single__0_sbox_in__0__3;
  DATATYPE des_single__0_sbox_in__0__4;
  DATATYPE des_single__0_sbox_in__0__5;
  DATATYPE des_single__0_sbox_in__0__6;
  DATATYPE des_single__0_sbox_in__1__1;
  DATATYPE des_single__0_sbox_in__1__2;
  DATATYPE des_single__0_sbox_in__1__3;
  DATATYPE des_single__0_sbox_in__1__4;
  DATATYPE des_single__0_sbox_in__1__5;
  DATATYPE des_single__0_sbox_in__1__6;
  DATATYPE des_single__0_sbox_in__2__1;
  DATATYPE des_single__0_sbox_in__2__2;
  DATATYPE des_single__0_sbox_in__2__3;
  DATATYPE des_single__0_sbox_in__2__4;
  DATATYPE des_single__0_sbox_in__2__5;
  DATATYPE des_single__0_sbox_in__2__6;
  DATATYPE des_single__0_sbox_in__3__1;
  DATATYPE des_single__0_sbox_in__3__2;
  DATATYPE des_single__0_sbox_in__3__3;
  DATATYPE des_single__0_sbox_in__3__4;
  DATATYPE des_single__0_sbox_in__3__5;
  DATATYPE des_single__0_sbox_in__3__6;
  DATATYPE des_single__0_sbox_in__4__1;
  DATATYPE des_single__0_sbox_in__4__2;
  DATATYPE des_single__0_sbox_in__4__3;
  DATATYPE des_single__0_sbox_in__4__4;
  DATATYPE des_single__0_sbox_in__4__5;
  DATATYPE des_single__0_sbox_in__4__6;
  DATATYPE des_single__0_sbox_in__5__1;
  DATATYPE des_single__0_sbox_in__5__2;
  DATATYPE des_single__0_sbox_in__5__3;
  DATATYPE des_single__0_sbox_in__5__4;
  DATATYPE des_single__0_sbox_in__5__5;
  DATATYPE des_single__0_sbox_in__5__6;
  DATATYPE des_single__0_sbox_in__6__1;
  DATATYPE des_single__0_sbox_in__6__2;
  DATATYPE des_single__0_sbox_in__6__3;
  DATATYPE des_single__0_sbox_in__6__4;
  DATATYPE des_single__0_sbox_in__6__5;
  DATATYPE des_single__0_sbox_in__6__6;
  DATATYPE des_single__0_sbox_in__7__1;
  DATATYPE des_single__0_sbox_in__7__2;
  DATATYPE des_single__0_sbox_in__7__3;
  DATATYPE des_single__0_sbox_in__7__4;
  DATATYPE des_single__0_sbox_in__7__5;
  DATATYPE des_single__0_sbox_in__7__6;
  DATATYPE des_single__10_sbox_in__0__1;
  DATATYPE des_single__10_sbox_in__0__2;
  DATATYPE des_single__10_sbox_in__0__3;
  DATATYPE des_single__10_sbox_in__0__4;
  DATATYPE des_single__10_sbox_in__0__5;
  DATATYPE des_single__10_sbox_in__0__6;
  DATATYPE des_single__10_sbox_in__1__1;
  DATATYPE des_single__10_sbox_in__1__2;
  DATATYPE des_single__10_sbox_in__1__3;
  DATATYPE des_single__10_sbox_in__1__4;
  DATATYPE des_single__10_sbox_in__1__5;
  DATATYPE des_single__10_sbox_in__1__6;
  DATATYPE des_single__10_sbox_in__2__1;
  DATATYPE des_single__10_sbox_in__2__2;
  DATATYPE des_single__10_sbox_in__2__3;
  DATATYPE des_single__10_sbox_in__2__4;
  DATATYPE des_single__10_sbox_in__2__5;
  DATATYPE des_single__10_sbox_in__2__6;
  DATATYPE des_single__10_sbox_in__3__1;
  DATATYPE des_single__10_sbox_in__3__2;
  DATATYPE des_single__10_sbox_in__3__3;
  DATATYPE des_single__10_sbox_in__3__4;
  DATATYPE des_single__10_sbox_in__3__5;
  DATATYPE des_single__10_sbox_in__3__6;
  DATATYPE des_single__10_sbox_in__4__1;
  DATATYPE des_single__10_sbox_in__4__2;
  DATATYPE des_single__10_sbox_in__4__3;
  DATATYPE des_single__10_sbox_in__4__4;
  DATATYPE des_single__10_sbox_in__4__5;
  DATATYPE des_single__10_sbox_in__4__6;
  DATATYPE des_single__10_sbox_in__5__1;
  DATATYPE des_single__10_sbox_in__5__2;
  DATATYPE des_single__10_sbox_in__5__3;
  DATATYPE des_single__10_sbox_in__5__4;
  DATATYPE des_single__10_sbox_in__5__5;
  DATATYPE des_single__10_sbox_in__5__6;
  DATATYPE des_single__10_sbox_in__6__1;
  DATATYPE des_single__10_sbox_in__6__2;
  DATATYPE des_single__10_sbox_in__6__3;
  DATATYPE des_single__10_sbox_in__6__4;
  DATATYPE des_single__10_sbox_in__6__5;
  DATATYPE des_single__10_sbox_in__6__6;
  DATATYPE des_single__10_sbox_in__7__1;
  DATATYPE des_single__10_sbox_in__7__2;
  DATATYPE des_single__10_sbox_in__7__3;
  DATATYPE des_single__10_sbox_in__7__4;
  DATATYPE des_single__10_sbox_in__7__5;
  DATATYPE des_single__10_sbox_in__7__6;
  DATATYPE des_single__11_sbox_in__0__1;
  DATATYPE des_single__11_sbox_in__0__2;
  DATATYPE des_single__11_sbox_in__0__3;
  DATATYPE des_single__11_sbox_in__0__4;
  DATATYPE des_single__11_sbox_in__0__5;
  DATATYPE des_single__11_sbox_in__0__6;
  DATATYPE des_single__11_sbox_in__1__1;
  DATATYPE des_single__11_sbox_in__1__2;
  DATATYPE des_single__11_sbox_in__1__3;
  DATATYPE des_single__11_sbox_in__1__4;
  DATATYPE des_single__11_sbox_in__1__5;
  DATATYPE des_single__11_sbox_in__1__6;
  DATATYPE des_single__11_sbox_in__2__1;
  DATATYPE des_single__11_sbox_in__2__2;
  DATATYPE des_single__11_sbox_in__2__3;
  DATATYPE des_single__11_sbox_in__2__4;
  DATATYPE des_single__11_sbox_in__2__5;
  DATATYPE des_single__11_sbox_in__2__6;
  DATATYPE des_single__11_sbox_in__3__1;
  DATATYPE des_single__11_sbox_in__3__2;
  DATATYPE des_single__11_sbox_in__3__3;
  DATATYPE des_single__11_sbox_in__3__4;
  DATATYPE des_single__11_sbox_in__3__5;
  DATATYPE des_single__11_sbox_in__3__6;
  DATATYPE des_single__11_sbox_in__4__1;
  DATATYPE des_single__11_sbox_in__4__2;
  DATATYPE des_single__11_sbox_in__4__3;
  DATATYPE des_single__11_sbox_in__4__4;
  DATATYPE des_single__11_sbox_in__4__5;
  DATATYPE des_single__11_sbox_in__4__6;
  DATATYPE des_single__11_sbox_in__5__1;
  DATATYPE des_single__11_sbox_in__5__2;
  DATATYPE des_single__11_sbox_in__5__3;
  DATATYPE des_single__11_sbox_in__5__4;
  DATATYPE des_single__11_sbox_in__5__5;
  DATATYPE des_single__11_sbox_in__5__6;
  DATATYPE des_single__11_sbox_in__6__1;
  DATATYPE des_single__11_sbox_in__6__2;
  DATATYPE des_single__11_sbox_in__6__3;
  DATATYPE des_single__11_sbox_in__6__4;
  DATATYPE des_single__11_sbox_in__6__5;
  DATATYPE des_single__11_sbox_in__6__6;
  DATATYPE des_single__11_sbox_in__7__1;
  DATATYPE des_single__11_sbox_in__7__2;
  DATATYPE des_single__11_sbox_in__7__3;
  DATATYPE des_single__11_sbox_in__7__4;
  DATATYPE des_single__11_sbox_in__7__5;
  DATATYPE des_single__11_sbox_in__7__6;
  DATATYPE des_single__12_sbox_in__0__1;
  DATATYPE des_single__12_sbox_in__0__2;
  DATATYPE des_single__12_sbox_in__0__3;
  DATATYPE des_single__12_sbox_in__0__4;
  DATATYPE des_single__12_sbox_in__0__5;
  DATATYPE des_single__12_sbox_in__0__6;
  DATATYPE des_single__12_sbox_in__1__1;
  DATATYPE des_single__12_sbox_in__1__2;
  DATATYPE des_single__12_sbox_in__1__3;
  DATATYPE des_single__12_sbox_in__1__4;
  DATATYPE des_single__12_sbox_in__1__5;
  DATATYPE des_single__12_sbox_in__1__6;
  DATATYPE des_single__12_sbox_in__2__1;
  DATATYPE des_single__12_sbox_in__2__2;
  DATATYPE des_single__12_sbox_in__2__3;
  DATATYPE des_single__12_sbox_in__2__4;
  DATATYPE des_single__12_sbox_in__2__5;
  DATATYPE des_single__12_sbox_in__2__6;
  DATATYPE des_single__12_sbox_in__3__1;
  DATATYPE des_single__12_sbox_in__3__2;
  DATATYPE des_single__12_sbox_in__3__3;
  DATATYPE des_single__12_sbox_in__3__4;
  DATATYPE des_single__12_sbox_in__3__5;
  DATATYPE des_single__12_sbox_in__3__6;
  DATATYPE des_single__12_sbox_in__4__1;
  DATATYPE des_single__12_sbox_in__4__2;
  DATATYPE des_single__12_sbox_in__4__3;
  DATATYPE des_single__12_sbox_in__4__4;
  DATATYPE des_single__12_sbox_in__4__5;
  DATATYPE des_single__12_sbox_in__4__6;
  DATATYPE des_single__12_sbox_in__5__1;
  DATATYPE des_single__12_sbox_in__5__2;
  DATATYPE des_single__12_sbox_in__5__3;
  DATATYPE des_single__12_sbox_in__5__4;
  DATATYPE des_single__12_sbox_in__5__5;
  DATATYPE des_single__12_sbox_in__5__6;
  DATATYPE des_single__12_sbox_in__6__1;
  DATATYPE des_single__12_sbox_in__6__2;
  DATATYPE des_single__12_sbox_in__6__3;
  DATATYPE des_single__12_sbox_in__6__4;
  DATATYPE des_single__12_sbox_in__6__5;
  DATATYPE des_single__12_sbox_in__6__6;
  DATATYPE des_single__12_sbox_in__7__1;
  DATATYPE des_single__12_sbox_in__7__2;
  DATATYPE des_single__12_sbox_in__7__3;
  DATATYPE des_single__12_sbox_in__7__4;
  DATATYPE des_single__12_sbox_in__7__5;
  DATATYPE des_single__12_sbox_in__7__6;
  DATATYPE des_single__13_sbox_in__0__1;
  DATATYPE des_single__13_sbox_in__0__2;
  DATATYPE des_single__13_sbox_in__0__3;
  DATATYPE des_single__13_sbox_in__0__4;
  DATATYPE des_single__13_sbox_in__0__5;
  DATATYPE des_single__13_sbox_in__0__6;
  DATATYPE des_single__13_sbox_in__1__1;
  DATATYPE des_single__13_sbox_in__1__2;
  DATATYPE des_single__13_sbox_in__1__3;
  DATATYPE des_single__13_sbox_in__1__4;
  DATATYPE des_single__13_sbox_in__1__5;
  DATATYPE des_single__13_sbox_in__1__6;
  DATATYPE des_single__13_sbox_in__2__1;
  DATATYPE des_single__13_sbox_in__2__2;
  DATATYPE des_single__13_sbox_in__2__3;
  DATATYPE des_single__13_sbox_in__2__4;
  DATATYPE des_single__13_sbox_in__2__5;
  DATATYPE des_single__13_sbox_in__2__6;
  DATATYPE des_single__13_sbox_in__3__1;
  DATATYPE des_single__13_sbox_in__3__2;
  DATATYPE des_single__13_sbox_in__3__3;
  DATATYPE des_single__13_sbox_in__3__4;
  DATATYPE des_single__13_sbox_in__3__5;
  DATATYPE des_single__13_sbox_in__3__6;
  DATATYPE des_single__13_sbox_in__4__1;
  DATATYPE des_single__13_sbox_in__4__2;
  DATATYPE des_single__13_sbox_in__4__3;
  DATATYPE des_single__13_sbox_in__4__4;
  DATATYPE des_single__13_sbox_in__4__5;
  DATATYPE des_single__13_sbox_in__4__6;
  DATATYPE des_single__13_sbox_in__5__1;
  DATATYPE des_single__13_sbox_in__5__2;
  DATATYPE des_single__13_sbox_in__5__3;
  DATATYPE des_single__13_sbox_in__5__4;
  DATATYPE des_single__13_sbox_in__5__5;
  DATATYPE des_single__13_sbox_in__5__6;
  DATATYPE des_single__13_sbox_in__6__1;
  DATATYPE des_single__13_sbox_in__6__2;
  DATATYPE des_single__13_sbox_in__6__3;
  DATATYPE des_single__13_sbox_in__6__4;
  DATATYPE des_single__13_sbox_in__6__5;
  DATATYPE des_single__13_sbox_in__6__6;
  DATATYPE des_single__13_sbox_in__7__1;
  DATATYPE des_single__13_sbox_in__7__2;
  DATATYPE des_single__13_sbox_in__7__3;
  DATATYPE des_single__13_sbox_in__7__4;
  DATATYPE des_single__13_sbox_in__7__5;
  DATATYPE des_single__13_sbox_in__7__6;
  DATATYPE des_single__14_sbox_in__0__1;
  DATATYPE des_single__14_sbox_in__0__2;
  DATATYPE des_single__14_sbox_in__0__3;
  DATATYPE des_single__14_sbox_in__0__4;
  DATATYPE des_single__14_sbox_in__0__5;
  DATATYPE des_single__14_sbox_in__0__6;
  DATATYPE des_single__14_sbox_in__1__1;
  DATATYPE des_single__14_sbox_in__1__2;
  DATATYPE des_single__14_sbox_in__1__3;
  DATATYPE des_single__14_sbox_in__1__4;
  DATATYPE des_single__14_sbox_in__1__5;
  DATATYPE des_single__14_sbox_in__2__3;
  DATATYPE des_single__14_sbox_in__2__4;
  DATATYPE des_single__14_sbox_in__2__6;
  DATATYPE des_single__14_sbox_in__3__1;
  DATATYPE des_single__14_sbox_in__3__2;
  DATATYPE des_single__14_sbox_in__3__3;
  DATATYPE des_single__14_sbox_in__3__4;
  DATATYPE des_single__14_sbox_in__3__5;
  DATATYPE des_single__14_sbox_in__3__6;
  DATATYPE des_single__14_sbox_in__4__1;
  DATATYPE des_single__14_sbox_in__4__2;
  DATATYPE des_single__14_sbox_in__4__3;
  DATATYPE des_single__14_sbox_in__4__4;
  DATATYPE des_single__14_sbox_in__4__5;
  DATATYPE des_single__14_sbox_in__5__1;
  DATATYPE des_single__14_sbox_in__5__2;
  DATATYPE des_single__14_sbox_in__5__3;
  DATATYPE des_single__14_sbox_in__5__4;
  DATATYPE des_single__14_sbox_in__5__5;
  DATATYPE des_single__14_sbox_in__5__6;
  DATATYPE des_single__14_sbox_in__6__2;
  DATATYPE des_single__14_sbox_in__6__4;
  DATATYPE des_single__14_sbox_in__6__5;
  DATATYPE des_single__14_sbox_in__6__6;
  DATATYPE des_single__14_sbox_in__7__1;
  DATATYPE des_single__14_sbox_in__7__2;
  DATATYPE des_single__14_sbox_in__7__3;
  DATATYPE des_single__14_sbox_in__7__5;
  DATATYPE des_single__14_sbox_in__7__6;
  DATATYPE des_single__1_sbox_in__0__1;
  DATATYPE des_single__1_sbox_in__0__2;
  DATATYPE des_single__1_sbox_in__0__3;
  DATATYPE des_single__1_sbox_in__0__4;
  DATATYPE des_single__1_sbox_in__0__5;
  DATATYPE des_single__1_sbox_in__0__6;
  DATATYPE des_single__1_sbox_in__1__1;
  DATATYPE des_single__1_sbox_in__1__2;
  DATATYPE des_single__1_sbox_in__1__3;
  DATATYPE des_single__1_sbox_in__1__4;
  DATATYPE des_single__1_sbox_in__1__5;
  DATATYPE des_single__1_sbox_in__1__6;
  DATATYPE des_single__1_sbox_in__2__1;
  DATATYPE des_single__1_sbox_in__2__2;
  DATATYPE des_single__1_sbox_in__2__3;
  DATATYPE des_single__1_sbox_in__2__4;
  DATATYPE des_single__1_sbox_in__2__5;
  DATATYPE des_single__1_sbox_in__2__6;
  DATATYPE des_single__1_sbox_in__3__1;
  DATATYPE des_single__1_sbox_in__3__2;
  DATATYPE des_single__1_sbox_in__3__3;
  DATATYPE des_single__1_sbox_in__3__4;
  DATATYPE des_single__1_sbox_in__3__5;
  DATATYPE des_single__1_sbox_in__3__6;
  DATATYPE des_single__1_sbox_in__4__1;
  DATATYPE des_single__1_sbox_in__4__2;
  DATATYPE des_single__1_sbox_in__4__3;
  DATATYPE des_single__1_sbox_in__4__4;
  DATATYPE des_single__1_sbox_in__4__5;
  DATATYPE des_single__1_sbox_in__4__6;
  DATATYPE des_single__1_sbox_in__5__1;
  DATATYPE des_single__1_sbox_in__5__2;
  DATATYPE des_single__1_sbox_in__5__3;
  DATATYPE des_single__1_sbox_in__5__4;
  DATATYPE des_single__1_sbox_in__5__5;
  DATATYPE des_single__1_sbox_in__5__6;
  DATATYPE des_single__1_sbox_in__6__1;
  DATATYPE des_single__1_sbox_in__6__2;
  DATATYPE des_single__1_sbox_in__6__3;
  DATATYPE des_single__1_sbox_in__6__4;
  DATATYPE des_single__1_sbox_in__6__5;
  DATATYPE des_single__1_sbox_in__6__6;
  DATATYPE des_single__1_sbox_in__7__1;
  DATATYPE des_single__1_sbox_in__7__2;
  DATATYPE des_single__1_sbox_in__7__3;
  DATATYPE des_single__1_sbox_in__7__4;
  DATATYPE des_single__1_sbox_in__7__5;
  DATATYPE des_single__1_sbox_in__7__6;
  DATATYPE des_single__2_sbox_in__0__1;
  DATATYPE des_single__2_sbox_in__0__2;
  DATATYPE des_single__2_sbox_in__0__3;
  DATATYPE des_single__2_sbox_in__0__4;
  DATATYPE des_single__2_sbox_in__0__5;
  DATATYPE des_single__2_sbox_in__0__6;
  DATATYPE des_single__2_sbox_in__1__1;
  DATATYPE des_single__2_sbox_in__1__2;
  DATATYPE des_single__2_sbox_in__1__3;
  DATATYPE des_single__2_sbox_in__1__4;
  DATATYPE des_single__2_sbox_in__1__5;
  DATATYPE des_single__2_sbox_in__1__6;
  DATATYPE des_single__2_sbox_in__2__1;
  DATATYPE des_single__2_sbox_in__2__2;
  DATATYPE des_single__2_sbox_in__2__3;
  DATATYPE des_single__2_sbox_in__2__4;
  DATATYPE des_single__2_sbox_in__2__5;
  DATATYPE des_single__2_sbox_in__2__6;
  DATATYPE des_single__2_sbox_in__3__1;
  DATATYPE des_single__2_sbox_in__3__2;
  DATATYPE des_single__2_sbox_in__3__3;
  DATATYPE des_single__2_sbox_in__3__4;
  DATATYPE des_single__2_sbox_in__3__5;
  DATATYPE des_single__2_sbox_in__3__6;
  DATATYPE des_single__2_sbox_in__4__1;
  DATATYPE des_single__2_sbox_in__4__2;
  DATATYPE des_single__2_sbox_in__4__3;
  DATATYPE des_single__2_sbox_in__4__4;
  DATATYPE des_single__2_sbox_in__4__5;
  DATATYPE des_single__2_sbox_in__4__6;
  DATATYPE des_single__2_sbox_in__5__1;
  DATATYPE des_single__2_sbox_in__5__2;
  DATATYPE des_single__2_sbox_in__5__3;
  DATATYPE des_single__2_sbox_in__5__4;
  DATATYPE des_single__2_sbox_in__5__5;
  DATATYPE des_single__2_sbox_in__5__6;
  DATATYPE des_single__2_sbox_in__6__1;
  DATATYPE des_single__2_sbox_in__6__2;
  DATATYPE des_single__2_sbox_in__6__3;
  DATATYPE des_single__2_sbox_in__6__4;
  DATATYPE des_single__2_sbox_in__6__5;
  DATATYPE des_single__2_sbox_in__6__6;
  DATATYPE des_single__2_sbox_in__7__1;
  DATATYPE des_single__2_sbox_in__7__2;
  DATATYPE des_single__2_sbox_in__7__3;
  DATATYPE des_single__2_sbox_in__7__4;
  DATATYPE des_single__2_sbox_in__7__5;
  DATATYPE des_single__2_sbox_in__7__6;
  DATATYPE des_single__3_sbox_in__0__1;
  DATATYPE des_single__3_sbox_in__0__2;
  DATATYPE des_single__3_sbox_in__0__3;
  DATATYPE des_single__3_sbox_in__0__4;
  DATATYPE des_single__3_sbox_in__0__5;
  DATATYPE des_single__3_sbox_in__0__6;
  DATATYPE des_single__3_sbox_in__1__1;
  DATATYPE des_single__3_sbox_in__1__2;
  DATATYPE des_single__3_sbox_in__1__3;
  DATATYPE des_single__3_sbox_in__1__4;
  DATATYPE des_single__3_sbox_in__1__5;
  DATATYPE des_single__3_sbox_in__1__6;
  DATATYPE des_single__3_sbox_in__2__1;
  DATATYPE des_single__3_sbox_in__2__2;
  DATATYPE des_single__3_sbox_in__2__3;
  DATATYPE des_single__3_sbox_in__2__4;
  DATATYPE des_single__3_sbox_in__2__5;
  DATATYPE des_single__3_sbox_in__2__6;
  DATATYPE des_single__3_sbox_in__3__1;
  DATATYPE des_single__3_sbox_in__3__2;
  DATATYPE des_single__3_sbox_in__3__3;
  DATATYPE des_single__3_sbox_in__3__4;
  DATATYPE des_single__3_sbox_in__3__5;
  DATATYPE des_single__3_sbox_in__3__6;
  DATATYPE des_single__3_sbox_in__4__1;
  DATATYPE des_single__3_sbox_in__4__2;
  DATATYPE des_single__3_sbox_in__4__3;
  DATATYPE des_single__3_sbox_in__4__4;
  DATATYPE des_single__3_sbox_in__4__5;
  DATATYPE des_single__3_sbox_in__4__6;
  DATATYPE des_single__3_sbox_in__5__1;
  DATATYPE des_single__3_sbox_in__5__2;
  DATATYPE des_single__3_sbox_in__5__3;
  DATATYPE des_single__3_sbox_in__5__4;
  DATATYPE des_single__3_sbox_in__5__5;
  DATATYPE des_single__3_sbox_in__5__6;
  DATATYPE des_single__3_sbox_in__6__1;
  DATATYPE des_single__3_sbox_in__6__2;
  DATATYPE des_single__3_sbox_in__6__3;
  DATATYPE des_single__3_sbox_in__6__4;
  DATATYPE des_single__3_sbox_in__6__5;
  DATATYPE des_single__3_sbox_in__6__6;
  DATATYPE des_single__3_sbox_in__7__1;
  DATATYPE des_single__3_sbox_in__7__2;
  DATATYPE des_single__3_sbox_in__7__3;
  DATATYPE des_single__3_sbox_in__7__4;
  DATATYPE des_single__3_sbox_in__7__5;
  DATATYPE des_single__3_sbox_in__7__6;
  DATATYPE des_single__4_sbox_in__0__1;
  DATATYPE des_single__4_sbox_in__0__2;
  DATATYPE des_single__4_sbox_in__0__3;
  DATATYPE des_single__4_sbox_in__0__4;
  DATATYPE des_single__4_sbox_in__0__5;
  DATATYPE des_single__4_sbox_in__0__6;
  DATATYPE des_single__4_sbox_in__1__1;
  DATATYPE des_single__4_sbox_in__1__2;
  DATATYPE des_single__4_sbox_in__1__3;
  DATATYPE des_single__4_sbox_in__1__4;
  DATATYPE des_single__4_sbox_in__1__5;
  DATATYPE des_single__4_sbox_in__1__6;
  DATATYPE des_single__4_sbox_in__2__1;
  DATATYPE des_single__4_sbox_in__2__2;
  DATATYPE des_single__4_sbox_in__2__3;
  DATATYPE des_single__4_sbox_in__2__4;
  DATATYPE des_single__4_sbox_in__2__5;
  DATATYPE des_single__4_sbox_in__2__6;
  DATATYPE des_single__4_sbox_in__3__1;
  DATATYPE des_single__4_sbox_in__3__2;
  DATATYPE des_single__4_sbox_in__3__3;
  DATATYPE des_single__4_sbox_in__3__4;
  DATATYPE des_single__4_sbox_in__3__5;
  DATATYPE des_single__4_sbox_in__3__6;
  DATATYPE des_single__4_sbox_in__4__1;
  DATATYPE des_single__4_sbox_in__4__2;
  DATATYPE des_single__4_sbox_in__4__3;
  DATATYPE des_single__4_sbox_in__4__4;
  DATATYPE des_single__4_sbox_in__4__5;
  DATATYPE des_single__4_sbox_in__4__6;
  DATATYPE des_single__4_sbox_in__5__1;
  DATATYPE des_single__4_sbox_in__5__2;
  DATATYPE des_single__4_sbox_in__5__3;
  DATATYPE des_single__4_sbox_in__5__4;
  DATATYPE des_single__4_sbox_in__5__5;
  DATATYPE des_single__4_sbox_in__5__6;
  DATATYPE des_single__4_sbox_in__6__1;
  DATATYPE des_single__4_sbox_in__6__2;
  DATATYPE des_single__4_sbox_in__6__3;
  DATATYPE des_single__4_sbox_in__6__4;
  DATATYPE des_single__4_sbox_in__6__5;
  DATATYPE des_single__4_sbox_in__6__6;
  DATATYPE des_single__4_sbox_in__7__1;
  DATATYPE des_single__4_sbox_in__7__2;
  DATATYPE des_single__4_sbox_in__7__3;
  DATATYPE des_single__4_sbox_in__7__4;
  DATATYPE des_single__4_sbox_in__7__5;
  DATATYPE des_single__4_sbox_in__7__6;
  DATATYPE des_single__5_sbox_in__0__1;
  DATATYPE des_single__5_sbox_in__0__2;
  DATATYPE des_single__5_sbox_in__0__3;
  DATATYPE des_single__5_sbox_in__0__4;
  DATATYPE des_single__5_sbox_in__0__5;
  DATATYPE des_single__5_sbox_in__0__6;
  DATATYPE des_single__5_sbox_in__1__1;
  DATATYPE des_single__5_sbox_in__1__2;
  DATATYPE des_single__5_sbox_in__1__3;
  DATATYPE des_single__5_sbox_in__1__4;
  DATATYPE des_single__5_sbox_in__1__5;
  DATATYPE des_single__5_sbox_in__1__6;
  DATATYPE des_single__5_sbox_in__2__1;
  DATATYPE des_single__5_sbox_in__2__2;
  DATATYPE des_single__5_sbox_in__2__3;
  DATATYPE des_single__5_sbox_in__2__4;
  DATATYPE des_single__5_sbox_in__2__5;
  DATATYPE des_single__5_sbox_in__2__6;
  DATATYPE des_single__5_sbox_in__3__1;
  DATATYPE des_single__5_sbox_in__3__2;
  DATATYPE des_single__5_sbox_in__3__3;
  DATATYPE des_single__5_sbox_in__3__4;
  DATATYPE des_single__5_sbox_in__3__5;
  DATATYPE des_single__5_sbox_in__3__6;
  DATATYPE des_single__5_sbox_in__4__1;
  DATATYPE des_single__5_sbox_in__4__2;
  DATATYPE des_single__5_sbox_in__4__3;
  DATATYPE des_single__5_sbox_in__4__4;
  DATATYPE des_single__5_sbox_in__4__5;
  DATATYPE des_single__5_sbox_in__4__6;
  DATATYPE des_single__5_sbox_in__5__1;
  DATATYPE des_single__5_sbox_in__5__2;
  DATATYPE des_single__5_sbox_in__5__3;
  DATATYPE des_single__5_sbox_in__5__4;
  DATATYPE des_single__5_sbox_in__5__5;
  DATATYPE des_single__5_sbox_in__5__6;
  DATATYPE des_single__5_sbox_in__6__1;
  DATATYPE des_single__5_sbox_in__6__2;
  DATATYPE des_single__5_sbox_in__6__3;
  DATATYPE des_single__5_sbox_in__6__4;
  DATATYPE des_single__5_sbox_in__6__5;
  DATATYPE des_single__5_sbox_in__6__6;
  DATATYPE des_single__5_sbox_in__7__1;
  DATATYPE des_single__5_sbox_in__7__2;
  DATATYPE des_single__5_sbox_in__7__3;
  DATATYPE des_single__5_sbox_in__7__4;
  DATATYPE des_single__5_sbox_in__7__5;
  DATATYPE des_single__5_sbox_in__7__6;
  DATATYPE des_single__6_sbox_in__0__1;
  DATATYPE des_single__6_sbox_in__0__2;
  DATATYPE des_single__6_sbox_in__0__3;
  DATATYPE des_single__6_sbox_in__0__4;
  DATATYPE des_single__6_sbox_in__0__5;
  DATATYPE des_single__6_sbox_in__0__6;
  DATATYPE des_single__6_sbox_in__1__1;
  DATATYPE des_single__6_sbox_in__1__2;
  DATATYPE des_single__6_sbox_in__1__3;
  DATATYPE des_single__6_sbox_in__1__4;
  DATATYPE des_single__6_sbox_in__1__5;
  DATATYPE des_single__6_sbox_in__1__6;
  DATATYPE des_single__6_sbox_in__2__1;
  DATATYPE des_single__6_sbox_in__2__2;
  DATATYPE des_single__6_sbox_in__2__3;
  DATATYPE des_single__6_sbox_in__2__4;
  DATATYPE des_single__6_sbox_in__2__5;
  DATATYPE des_single__6_sbox_in__2__6;
  DATATYPE des_single__6_sbox_in__3__1;
  DATATYPE des_single__6_sbox_in__3__2;
  DATATYPE des_single__6_sbox_in__3__3;
  DATATYPE des_single__6_sbox_in__3__4;
  DATATYPE des_single__6_sbox_in__3__5;
  DATATYPE des_single__6_sbox_in__3__6;
  DATATYPE des_single__6_sbox_in__4__1;
  DATATYPE des_single__6_sbox_in__4__2;
  DATATYPE des_single__6_sbox_in__4__3;
  DATATYPE des_single__6_sbox_in__4__4;
  DATATYPE des_single__6_sbox_in__4__5;
  DATATYPE des_single__6_sbox_in__4__6;
  DATATYPE des_single__6_sbox_in__5__1;
  DATATYPE des_single__6_sbox_in__5__2;
  DATATYPE des_single__6_sbox_in__5__3;
  DATATYPE des_single__6_sbox_in__5__4;
  DATATYPE des_single__6_sbox_in__5__5;
  DATATYPE des_single__6_sbox_in__5__6;
  DATATYPE des_single__6_sbox_in__6__1;
  DATATYPE des_single__6_sbox_in__6__2;
  DATATYPE des_single__6_sbox_in__6__3;
  DATATYPE des_single__6_sbox_in__6__4;
  DATATYPE des_single__6_sbox_in__6__5;
  DATATYPE des_single__6_sbox_in__6__6;
  DATATYPE des_single__6_sbox_in__7__1;
  DATATYPE des_single__6_sbox_in__7__2;
  DATATYPE des_single__6_sbox_in__7__3;
  DATATYPE des_single__6_sbox_in__7__4;
  DATATYPE des_single__6_sbox_in__7__5;
  DATATYPE des_single__6_sbox_in__7__6;
  DATATYPE des_single__7_sbox_in__0__1;
  DATATYPE des_single__7_sbox_in__0__2;
  DATATYPE des_single__7_sbox_in__0__3;
  DATATYPE des_single__7_sbox_in__0__4;
  DATATYPE des_single__7_sbox_in__0__5;
  DATATYPE des_single__7_sbox_in__0__6;
  DATATYPE des_single__7_sbox_in__1__1;
  DATATYPE des_single__7_sbox_in__1__2;
  DATATYPE des_single__7_sbox_in__1__3;
  DATATYPE des_single__7_sbox_in__1__4;
  DATATYPE des_single__7_sbox_in__1__5;
  DATATYPE des_single__7_sbox_in__1__6;
  DATATYPE des_single__7_sbox_in__2__1;
  DATATYPE des_single__7_sbox_in__2__2;
  DATATYPE des_single__7_sbox_in__2__3;
  DATATYPE des_single__7_sbox_in__2__4;
  DATATYPE des_single__7_sbox_in__2__5;
  DATATYPE des_single__7_sbox_in__2__6;
  DATATYPE des_single__7_sbox_in__3__1;
  DATATYPE des_single__7_sbox_in__3__2;
  DATATYPE des_single__7_sbox_in__3__3;
  DATATYPE des_single__7_sbox_in__3__4;
  DATATYPE des_single__7_sbox_in__3__5;
  DATATYPE des_single__7_sbox_in__3__6;
  DATATYPE des_single__7_sbox_in__4__1;
  DATATYPE des_single__7_sbox_in__4__2;
  DATATYPE des_single__7_sbox_in__4__3;
  DATATYPE des_single__7_sbox_in__4__4;
  DATATYPE des_single__7_sbox_in__4__5;
  DATATYPE des_single__7_sbox_in__4__6;
  DATATYPE des_single__7_sbox_in__5__1;
  DATATYPE des_single__7_sbox_in__5__2;
  DATATYPE des_single__7_sbox_in__5__3;
  DATATYPE des_single__7_sbox_in__5__4;
  DATATYPE des_single__7_sbox_in__5__5;
  DATATYPE des_single__7_sbox_in__5__6;
  DATATYPE des_single__7_sbox_in__6__1;
  DATATYPE des_single__7_sbox_in__6__2;
  DATATYPE des_single__7_sbox_in__6__3;
  DATATYPE des_single__7_sbox_in__6__4;
  DATATYPE des_single__7_sbox_in__6__5;
  DATATYPE des_single__7_sbox_in__6__6;
  DATATYPE des_single__7_sbox_in__7__1;
  DATATYPE des_single__7_sbox_in__7__2;
  DATATYPE des_single__7_sbox_in__7__3;
  DATATYPE des_single__7_sbox_in__7__4;
  DATATYPE des_single__7_sbox_in__7__5;
  DATATYPE des_single__7_sbox_in__7__6;
  DATATYPE des_single__8_sbox_in__0__1;
  DATATYPE des_single__8_sbox_in__0__2;
  DATATYPE des_single__8_sbox_in__0__3;
  DATATYPE des_single__8_sbox_in__0__4;
  DATATYPE des_single__8_sbox_in__0__5;
  DATATYPE des_single__8_sbox_in__0__6;
  DATATYPE des_single__8_sbox_in__1__1;
  DATATYPE des_single__8_sbox_in__1__2;
  DATATYPE des_single__8_sbox_in__1__3;
  DATATYPE des_single__8_sbox_in__1__4;
  DATATYPE des_single__8_sbox_in__1__5;
  DATATYPE des_single__8_sbox_in__1__6;
  DATATYPE des_single__8_sbox_in__2__1;
  DATATYPE des_single__8_sbox_in__2__2;
  DATATYPE des_single__8_sbox_in__2__3;
  DATATYPE des_single__8_sbox_in__2__4;
  DATATYPE des_single__8_sbox_in__2__5;
  DATATYPE des_single__8_sbox_in__2__6;
  DATATYPE des_single__8_sbox_in__3__1;
  DATATYPE des_single__8_sbox_in__3__2;
  DATATYPE des_single__8_sbox_in__3__3;
  DATATYPE des_single__8_sbox_in__3__4;
  DATATYPE des_single__8_sbox_in__3__5;
  DATATYPE des_single__8_sbox_in__3__6;
  DATATYPE des_single__8_sbox_in__4__1;
  DATATYPE des_single__8_sbox_in__4__2;
  DATATYPE des_single__8_sbox_in__4__3;
  DATATYPE des_single__8_sbox_in__4__4;
  DATATYPE des_single__8_sbox_in__4__5;
  DATATYPE des_single__8_sbox_in__4__6;
  DATATYPE des_single__8_sbox_in__5__1;
  DATATYPE des_single__8_sbox_in__5__2;
  DATATYPE des_single__8_sbox_in__5__3;
  DATATYPE des_single__8_sbox_in__5__4;
  DATATYPE des_single__8_sbox_in__5__5;
  DATATYPE des_single__8_sbox_in__5__6;
  DATATYPE des_single__8_sbox_in__6__1;
  DATATYPE des_single__8_sbox_in__6__2;
  DATATYPE des_single__8_sbox_in__6__3;
  DATATYPE des_single__8_sbox_in__6__4;
  DATATYPE des_single__8_sbox_in__6__5;
  DATATYPE des_single__8_sbox_in__6__6;
  DATATYPE des_single__8_sbox_in__7__1;
  DATATYPE des_single__8_sbox_in__7__2;
  DATATYPE des_single__8_sbox_in__7__3;
  DATATYPE des_single__8_sbox_in__7__4;
  DATATYPE des_single__8_sbox_in__7__5;
  DATATYPE des_single__8_sbox_in__7__6;
  DATATYPE des_single__9_sbox_in__0__1;
  DATATYPE des_single__9_sbox_in__0__2;
  DATATYPE des_single__9_sbox_in__0__3;
  DATATYPE des_single__9_sbox_in__0__4;
  DATATYPE des_single__9_sbox_in__0__5;
  DATATYPE des_single__9_sbox_in__0__6;
  DATATYPE des_single__9_sbox_in__1__1;
  DATATYPE des_single__9_sbox_in__1__2;
  DATATYPE des_single__9_sbox_in__1__3;
  DATATYPE des_single__9_sbox_in__1__4;
  DATATYPE des_single__9_sbox_in__1__5;
  DATATYPE des_single__9_sbox_in__1__6;
  DATATYPE des_single__9_sbox_in__2__1;
  DATATYPE des_single__9_sbox_in__2__2;
  DATATYPE des_single__9_sbox_in__2__3;
  DATATYPE des_single__9_sbox_in__2__4;
  DATATYPE des_single__9_sbox_in__2__5;
  DATATYPE des_single__9_sbox_in__2__6;
  DATATYPE des_single__9_sbox_in__3__1;
  DATATYPE des_single__9_sbox_in__3__2;
  DATATYPE des_single__9_sbox_in__3__3;
  DATATYPE des_single__9_sbox_in__3__4;
  DATATYPE des_single__9_sbox_in__3__5;
  DATATYPE des_single__9_sbox_in__3__6;
  DATATYPE des_single__9_sbox_in__4__1;
  DATATYPE des_single__9_sbox_in__4__2;
  DATATYPE des_single__9_sbox_in__4__3;
  DATATYPE des_single__9_sbox_in__4__4;
  DATATYPE des_single__9_sbox_in__4__5;
  DATATYPE des_single__9_sbox_in__4__6;
  DATATYPE des_single__9_sbox_in__5__1;
  DATATYPE des_single__9_sbox_in__5__2;
  DATATYPE des_single__9_sbox_in__5__3;
  DATATYPE des_single__9_sbox_in__5__4;
  DATATYPE des_single__9_sbox_in__5__5;
  DATATYPE des_single__9_sbox_in__5__6;
  DATATYPE des_single__9_sbox_in__6__1;
  DATATYPE des_single__9_sbox_in__6__2;
  DATATYPE des_single__9_sbox_in__6__3;
  DATATYPE des_single__9_sbox_in__6__4;
  DATATYPE des_single__9_sbox_in__6__5;
  DATATYPE des_single__9_sbox_in__6__6;
  DATATYPE des_single__9_sbox_in__7__1;
  DATATYPE des_single__9_sbox_in__7__2;
  DATATYPE des_single__9_sbox_in__7__3;
  DATATYPE des_single__9_sbox_in__7__4;
  DATATYPE des_single__9_sbox_in__7__5;
  DATATYPE des_single__9_sbox_in__7__6;


  // Instructions (body)
  des_single__0_sbox_in__0__1 = XOR(key[9],plaintext[6]);
  des_single__0_sbox_in__0__2 = XOR(key[50],plaintext[56]);
  des_single__0_sbox_in__0__3 = XOR(key[33],plaintext[48]);
  des_single__0_sbox_in__0__4 = XOR(key[59],plaintext[40]);
  des_single__0_sbox_in__0__5 = XOR(key[48],plaintext[32]);
  des_single__0_sbox_in__0__6 = XOR(key[16],plaintext[24]);
  sbox__0(des_single__0_sbox_in__0__1,des_single__0_sbox_in__0__2,des_single__0_sbox_in__0__3,des_single__0_sbox_in__0__4,des_single__0_sbox_in__0__5,des_single__0_sbox_in__0__6,&des_single__0_sbox_in__0__1,&des_single__0_sbox_in__0__2,&des_single__0_sbox_in__0__3,&des_single__0_sbox_in__0__4);
  plaintext[59] = XOR(des_single__0_sbox_in__0__1,plaintext[59]);
  plaintext[61] = XOR(des_single__0_sbox_in__0__2,plaintext[61]);
  plaintext[13] = XOR(des_single__0_sbox_in__0__3,plaintext[13]);
  plaintext[15] = XOR(des_single__0_sbox_in__0__4,plaintext[15]);
  des_single__0_sbox_in__1__1 = XOR(key[32],plaintext[32]);
  des_single__0_sbox_in__1__2 = XOR(key[56],plaintext[24]);
  des_single__0_sbox_in__1__3 = XOR(key[1],plaintext[16]);
  des_single__0_sbox_in__1__4 = XOR(key[8],plaintext[8]);
  des_single__0_sbox_in__1__5 = XOR(key[18],plaintext[0]);
  des_single__0_sbox_in__1__6 = XOR(key[41],plaintext[58]);
  sbox__1(des_single__0_sbox_in__1__1,des_single__0_sbox_in__1__2,des_single__0_sbox_in__1__3,des_single__0_sbox_in__1__4,des_single__0_sbox_in__1__5,des_single__0_sbox_in__1__6,&des_single__0_sbox_in__1__1,&des_single__0_sbox_in__1__2,&des_single__0_sbox_in__1__3,&des_single__0_sbox_in__1__4);
  plaintext[27] = XOR(des_single__0_sbox_in__1__1,plaintext[27]);
  plaintext[39] = XOR(des_single__0_sbox_in__1__2,plaintext[39]);
  plaintext[49] = XOR(des_single__0_sbox_in__1__3,plaintext[49]);
  plaintext[53] = XOR(des_single__0_sbox_in__1__4,plaintext[53]);
  des_single__0_sbox_in__2__1 = XOR(key[2],plaintext[0]);
  des_single__0_sbox_in__2__2 = XOR(key[34],plaintext[58]);
  des_single__0_sbox_in__2__3 = XOR(key[25],plaintext[50]);
  des_single__0_sbox_in__2__4 = XOR(key[24],plaintext[42]);
  des_single__0_sbox_in__2__5 = XOR(key[43],plaintext[34]);
  des_single__0_sbox_in__2__6 = XOR(key[57],plaintext[26]);
  sbox__2(des_single__0_sbox_in__2__1,des_single__0_sbox_in__2__2,des_single__0_sbox_in__2__3,des_single__0_sbox_in__2__4,des_single__0_sbox_in__2__5,des_single__0_sbox_in__2__6,&des_single__0_sbox_in__2__1,&des_single__0_sbox_in__2__2,&des_single__0_sbox_in__2__3,&des_single__0_sbox_in__2__4);
  plaintext[5] = XOR(des_single__0_sbox_in__2__1,plaintext[5]);
  plaintext[3] = XOR(des_single__0_sbox_in__2__2,plaintext[3]);
  plaintext[23] = XOR(des_single__0_sbox_in__2__3,plaintext[23]);
  plaintext[17] = XOR(des_single__0_sbox_in__2__4,plaintext[17]);
  des_single__0_sbox_in__3__1 = XOR(key[58],plaintext[34]);
  des_single__0_sbox_in__3__2 = XOR(key[0],plaintext[26]);
  des_single__0_sbox_in__3__3 = XOR(key[35],plaintext[18]);
  des_single__0_sbox_in__3__4 = XOR(key[26],plaintext[10]);
  des_single__0_sbox_in__3__5 = XOR(key[17],plaintext[2]);
  des_single__0_sbox_in__3__6 = XOR(key[40],plaintext[60]);
  sbox__3(des_single__0_sbox_in__3__1,des_single__0_sbox_in__3__2,des_single__0_sbox_in__3__3,des_single__0_sbox_in__3__4,des_single__0_sbox_in__3__5,des_single__0_sbox_in__3__6,&des_single__0_sbox_in__3__1,&des_single__0_sbox_in__3__2,&des_single__0_sbox_in__3__3,&des_single__0_sbox_in__3__4);
  plaintext[55] = XOR(des_single__0_sbox_in__3__1,plaintext[55]);
  plaintext[37] = XOR(des_single__0_sbox_in__3__2,plaintext[37]);
  plaintext[51] = XOR(des_single__0_sbox_in__3__3,plaintext[51]);
  plaintext[57] = XOR(des_single__0_sbox_in__3__4,plaintext[57]);
  des_single__0_sbox_in__4__1 = XOR(key[21],plaintext[2]);
  des_single__0_sbox_in__4__2 = XOR(key[27],plaintext[60]);
  des_single__0_sbox_in__4__3 = XOR(key[38],plaintext[52]);
  des_single__0_sbox_in__4__4 = XOR(key[53],plaintext[44]);
  des_single__0_sbox_in__4__5 = XOR(key[36],plaintext[36]);
  des_single__0_sbox_in__4__6 = XOR(key[3],plaintext[28]);
  sbox__4(des_single__0_sbox_in__4__1,des_single__0_sbox_in__4__2,des_single__0_sbox_in__4__3,des_single__0_sbox_in__4__4,des_single__0_sbox_in__4__5,des_single__0_sbox_in__4__6,&des_single__0_sbox_in__4__1,&des_single__0_sbox_in__4__2,&des_single__0_sbox_in__4__3,&des_single__0_sbox_in__4__4);
  plaintext[1] = XOR(des_single__0_sbox_in__4__1,plaintext[1]);
  plaintext[19] = XOR(des_single__0_sbox_in__4__2,plaintext[19]);
  plaintext[63] = XOR(des_single__0_sbox_in__4__3,plaintext[63]);
  plaintext[41] = XOR(des_single__0_sbox_in__4__4,plaintext[41]);
  des_single__0_sbox_in__5__1 = XOR(key[46],plaintext[36]);
  des_single__0_sbox_in__5__2 = XOR(key[29],plaintext[28]);
  des_single__0_sbox_in__5__3 = XOR(key[4],plaintext[20]);
  des_single__0_sbox_in__5__4 = XOR(key[52],plaintext[12]);
  des_single__0_sbox_in__5__5 = XOR(key[22],plaintext[4]);
  des_single__0_sbox_in__5__6 = XOR(key[28],plaintext[62]);
  sbox__5(des_single__0_sbox_in__5__1,des_single__0_sbox_in__5__2,des_single__0_sbox_in__5__3,des_single__0_sbox_in__5__4,des_single__0_sbox_in__5__5,des_single__0_sbox_in__5__6,&des_single__0_sbox_in__5__1,&des_single__0_sbox_in__5__2,&des_single__0_sbox_in__5__3,&des_single__0_sbox_in__5__4);
  plaintext[33] = XOR(des_single__0_sbox_in__5__1,plaintext[33]);
  plaintext[31] = XOR(des_single__0_sbox_in__5__2,plaintext[31]);
  plaintext[43] = XOR(des_single__0_sbox_in__5__3,plaintext[43]);
  plaintext[45] = XOR(des_single__0_sbox_in__5__4,plaintext[45]);
  des_single__0_sbox_in__6__1 = XOR(key[60],plaintext[4]);
  des_single__0_sbox_in__6__2 = XOR(key[20],plaintext[62]);
  des_single__0_sbox_in__6__3 = XOR(key[37],plaintext[54]);
  des_single__0_sbox_in__6__4 = XOR(key[62],plaintext[46]);
  des_single__0_sbox_in__6__5 = XOR(key[14],plaintext[38]);
  des_single__0_sbox_in__6__6 = XOR(key[19],plaintext[30]);
  sbox__6(des_single__0_sbox_in__6__1,des_single__0_sbox_in__6__2,des_single__0_sbox_in__6__3,des_single__0_sbox_in__6__4,des_single__0_sbox_in__6__5,des_single__0_sbox_in__6__6,&des_single__0_sbox_in__6__1,&des_single__0_sbox_in__6__2,&des_single__0_sbox_in__6__3,&des_single__0_sbox_in__6__4);
  plaintext[7] = XOR(des_single__0_sbox_in__6__1,plaintext[7]);
  plaintext[35] = XOR(des_single__0_sbox_in__6__2,plaintext[35]);
  plaintext[21] = XOR(des_single__0_sbox_in__6__3,plaintext[21]);
  plaintext[9] = XOR(des_single__0_sbox_in__6__4,plaintext[9]);
  des_single__0_sbox_in__7__1 = XOR(key[44],plaintext[38]);
  des_single__0_sbox_in__7__2 = XOR(key[13],plaintext[30]);
  des_single__0_sbox_in__7__3 = XOR(key[12],plaintext[22]);
  des_single__0_sbox_in__7__4 = XOR(key[61],plaintext[14]);
  des_single__0_sbox_in__7__5 = XOR(key[54],plaintext[6]);
  des_single__0_sbox_in__7__6 = XOR(key[30],plaintext[56]);
  sbox__7(des_single__0_sbox_in__7__1,des_single__0_sbox_in__7__2,des_single__0_sbox_in__7__3,des_single__0_sbox_in__7__4,des_single__0_sbox_in__7__5,des_single__0_sbox_in__7__6,&des_single__0_sbox_in__7__1,&des_single__0_sbox_in__7__2,&des_single__0_sbox_in__7__3,&des_single__0_sbox_in__7__4);
  plaintext[25] = XOR(des_single__0_sbox_in__7__1,plaintext[25]);
  plaintext[47] = XOR(des_single__0_sbox_in__7__2,plaintext[47]);
  plaintext[11] = XOR(des_single__0_sbox_in__7__3,plaintext[11]);
  plaintext[29] = XOR(des_single__0_sbox_in__7__4,plaintext[29]);
  des_single__1_sbox_in__0__1 = XOR(key[1],plaintext[7]);
  des_single__1_sbox_in__0__2 = XOR(key[42],plaintext[57]);
  des_single__1_sbox_in__0__3 = XOR(key[25],plaintext[49]);
  des_single__1_sbox_in__0__4 = XOR(key[51],plaintext[41]);
  des_single__1_sbox_in__0__5 = XOR(key[40],plaintext[33]);
  des_single__1_sbox_in__0__6 = XOR(key[8],plaintext[25]);
  sbox__0(des_single__1_sbox_in__0__1,des_single__1_sbox_in__0__2,des_single__1_sbox_in__0__3,des_single__1_sbox_in__0__4,des_single__1_sbox_in__0__5,des_single__1_sbox_in__0__6,&des_single__1_sbox_in__0__1,&des_single__1_sbox_in__0__2,&des_single__1_sbox_in__0__3,&des_single__1_sbox_in__0__4);
  plaintext[58] = XOR(des_single__1_sbox_in__0__1,plaintext[58]);
  plaintext[60] = XOR(des_single__1_sbox_in__0__2,plaintext[60]);
  plaintext[12] = XOR(des_single__1_sbox_in__0__3,plaintext[12]);
  plaintext[14] = XOR(des_single__1_sbox_in__0__4,plaintext[14]);
  des_single__1_sbox_in__1__1 = XOR(key[24],plaintext[33]);
  des_single__1_sbox_in__1__2 = XOR(key[48],plaintext[25]);
  des_single__1_sbox_in__1__3 = XOR(key[58],plaintext[17]);
  des_single__1_sbox_in__1__4 = XOR(key[0],plaintext[9]);
  des_single__1_sbox_in__1__5 = XOR(key[10],plaintext[1]);
  des_single__1_sbox_in__1__6 = XOR(key[33],plaintext[59]);
  sbox__1(des_single__1_sbox_in__1__1,des_single__1_sbox_in__1__2,des_single__1_sbox_in__1__3,des_single__1_sbox_in__1__4,des_single__1_sbox_in__1__5,des_single__1_sbox_in__1__6,&des_single__1_sbox_in__1__1,&des_single__1_sbox_in__1__2,&des_single__1_sbox_in__1__3,&des_single__1_sbox_in__1__4);
  plaintext[26] = XOR(des_single__1_sbox_in__1__1,plaintext[26]);
  plaintext[38] = XOR(des_single__1_sbox_in__1__2,plaintext[38]);
  plaintext[48] = XOR(des_single__1_sbox_in__1__3,plaintext[48]);
  plaintext[52] = XOR(des_single__1_sbox_in__1__4,plaintext[52]);
  des_single__1_sbox_in__2__1 = XOR(key[59],plaintext[1]);
  des_single__1_sbox_in__2__2 = XOR(key[26],plaintext[59]);
  des_single__1_sbox_in__2__3 = XOR(key[17],plaintext[51]);
  des_single__1_sbox_in__2__4 = XOR(key[16],plaintext[43]);
  des_single__1_sbox_in__2__5 = XOR(key[35],plaintext[35]);
  des_single__1_sbox_in__2__6 = XOR(key[49],plaintext[27]);
  sbox__2(des_single__1_sbox_in__2__1,des_single__1_sbox_in__2__2,des_single__1_sbox_in__2__3,des_single__1_sbox_in__2__4,des_single__1_sbox_in__2__5,des_single__1_sbox_in__2__6,&des_single__1_sbox_in__2__1,&des_single__1_sbox_in__2__2,&des_single__1_sbox_in__2__3,&des_single__1_sbox_in__2__4);
  plaintext[4] = XOR(des_single__1_sbox_in__2__1,plaintext[4]);
  plaintext[2] = XOR(des_single__1_sbox_in__2__2,plaintext[2]);
  plaintext[22] = XOR(des_single__1_sbox_in__2__3,plaintext[22]);
  plaintext[16] = XOR(des_single__1_sbox_in__2__4,plaintext[16]);
  des_single__1_sbox_in__3__1 = XOR(key[50],plaintext[35]);
  des_single__1_sbox_in__3__2 = XOR(key[57],plaintext[27]);
  des_single__1_sbox_in__3__3 = XOR(key[56],plaintext[19]);
  des_single__1_sbox_in__3__4 = XOR(key[18],plaintext[11]);
  des_single__1_sbox_in__3__5 = XOR(key[9],plaintext[3]);
  des_single__1_sbox_in__3__6 = XOR(key[32],plaintext[61]);
  sbox__3(des_single__1_sbox_in__3__1,des_single__1_sbox_in__3__2,des_single__1_sbox_in__3__3,des_single__1_sbox_in__3__4,des_single__1_sbox_in__3__5,des_single__1_sbox_in__3__6,&des_single__1_sbox_in__3__1,&des_single__1_sbox_in__3__2,&des_single__1_sbox_in__3__3,&des_single__1_sbox_in__3__4);
  plaintext[54] = XOR(des_single__1_sbox_in__3__1,plaintext[54]);
  plaintext[36] = XOR(des_single__1_sbox_in__3__2,plaintext[36]);
  plaintext[50] = XOR(des_single__1_sbox_in__3__3,plaintext[50]);
  plaintext[56] = XOR(des_single__1_sbox_in__3__4,plaintext[56]);
  des_single__1_sbox_in__4__1 = XOR(key[13],plaintext[3]);
  des_single__1_sbox_in__4__2 = XOR(key[19],plaintext[61]);
  des_single__1_sbox_in__4__3 = XOR(key[30],plaintext[53]);
  des_single__1_sbox_in__4__4 = XOR(key[45],plaintext[45]);
  des_single__1_sbox_in__4__5 = XOR(key[28],plaintext[37]);
  des_single__1_sbox_in__4__6 = XOR(key[62],plaintext[29]);
  sbox__4(des_single__1_sbox_in__4__1,des_single__1_sbox_in__4__2,des_single__1_sbox_in__4__3,des_single__1_sbox_in__4__4,des_single__1_sbox_in__4__5,des_single__1_sbox_in__4__6,&des_single__1_sbox_in__4__1,&des_single__1_sbox_in__4__2,&des_single__1_sbox_in__4__3,&des_single__1_sbox_in__4__4);
  plaintext[0] = XOR(des_single__1_sbox_in__4__1,plaintext[0]);
  plaintext[18] = XOR(des_single__1_sbox_in__4__2,plaintext[18]);
  plaintext[62] = XOR(des_single__1_sbox_in__4__3,plaintext[62]);
  plaintext[40] = XOR(des_single__1_sbox_in__4__4,plaintext[40]);
  des_single__1_sbox_in__5__1 = XOR(key[38],plaintext[37]);
  des_single__1_sbox_in__5__2 = XOR(key[21],plaintext[29]);
  des_single__1_sbox_in__5__3 = XOR(key[27],plaintext[21]);
  des_single__1_sbox_in__5__4 = XOR(key[44],plaintext[13]);
  des_single__1_sbox_in__5__5 = XOR(key[14],plaintext[5]);
  des_single__1_sbox_in__5__6 = XOR(key[20],plaintext[63]);
  sbox__5(des_single__1_sbox_in__5__1,des_single__1_sbox_in__5__2,des_single__1_sbox_in__5__3,des_single__1_sbox_in__5__4,des_single__1_sbox_in__5__5,des_single__1_sbox_in__5__6,&des_single__1_sbox_in__5__1,&des_single__1_sbox_in__5__2,&des_single__1_sbox_in__5__3,&des_single__1_sbox_in__5__4);
  plaintext[32] = XOR(des_single__1_sbox_in__5__1,plaintext[32]);
  plaintext[30] = XOR(des_single__1_sbox_in__5__2,plaintext[30]);
  plaintext[42] = XOR(des_single__1_sbox_in__5__3,plaintext[42]);
  plaintext[44] = XOR(des_single__1_sbox_in__5__4,plaintext[44]);
  des_single__1_sbox_in__6__1 = XOR(key[52],plaintext[5]);
  des_single__1_sbox_in__6__2 = XOR(key[12],plaintext[63]);
  des_single__1_sbox_in__6__3 = XOR(key[29],plaintext[55]);
  des_single__1_sbox_in__6__4 = XOR(key[54],plaintext[47]);
  des_single__1_sbox_in__6__5 = XOR(key[6],plaintext[39]);
  des_single__1_sbox_in__6__6 = XOR(key[11],plaintext[31]);
  sbox__6(des_single__1_sbox_in__6__1,des_single__1_sbox_in__6__2,des_single__1_sbox_in__6__3,des_single__1_sbox_in__6__4,des_single__1_sbox_in__6__5,des_single__1_sbox_in__6__6,&des_single__1_sbox_in__6__1,&des_single__1_sbox_in__6__2,&des_single__1_sbox_in__6__3,&des_single__1_sbox_in__6__4);
  plaintext[6] = XOR(des_single__1_sbox_in__6__1,plaintext[6]);
  plaintext[34] = XOR(des_single__1_sbox_in__6__2,plaintext[34]);
  plaintext[20] = XOR(des_single__1_sbox_in__6__3,plaintext[20]);
  plaintext[8] = XOR(des_single__1_sbox_in__6__4,plaintext[8]);
  des_single__1_sbox_in__7__1 = XOR(key[36],plaintext[39]);
  des_single__1_sbox_in__7__2 = XOR(key[5],plaintext[31]);
  des_single__1_sbox_in__7__3 = XOR(key[4],plaintext[23]);
  des_single__1_sbox_in__7__4 = XOR(key[53],plaintext[15]);
  des_single__1_sbox_in__7__5 = XOR(key[46],plaintext[7]);
  des_single__1_sbox_in__7__6 = XOR(key[22],plaintext[57]);
  sbox__7(des_single__1_sbox_in__7__1,des_single__1_sbox_in__7__2,des_single__1_sbox_in__7__3,des_single__1_sbox_in__7__4,des_single__1_sbox_in__7__5,des_single__1_sbox_in__7__6,&des_single__1_sbox_in__7__1,&des_single__1_sbox_in__7__2,&des_single__1_sbox_in__7__3,&des_single__1_sbox_in__7__4);
  plaintext[24] = XOR(des_single__1_sbox_in__7__1,plaintext[24]);
  plaintext[46] = XOR(des_single__1_sbox_in__7__2,plaintext[46]);
  plaintext[10] = XOR(des_single__1_sbox_in__7__3,plaintext[10]);
  plaintext[28] = XOR(des_single__1_sbox_in__7__4,plaintext[28]);
  des_single__2_sbox_in__0__1 = XOR(key[50],plaintext[6]);
  des_single__2_sbox_in__0__2 = XOR(key[26],plaintext[56]);
  des_single__2_sbox_in__0__3 = XOR(key[9],plaintext[48]);
  des_single__2_sbox_in__0__4 = XOR(key[35],plaintext[40]);
  des_single__2_sbox_in__0__5 = XOR(key[24],plaintext[32]);
  des_single__2_sbox_in__0__6 = XOR(key[57],plaintext[24]);
  sbox__0(des_single__2_sbox_in__0__1,des_single__2_sbox_in__0__2,des_single__2_sbox_in__0__3,des_single__2_sbox_in__0__4,des_single__2_sbox_in__0__5,des_single__2_sbox_in__0__6,&des_single__2_sbox_in__0__1,&des_single__2_sbox_in__0__2,&des_single__2_sbox_in__0__3,&des_single__2_sbox_in__0__4);
  plaintext[59] = XOR(des_single__2_sbox_in__0__1,plaintext[59]);
  plaintext[61] = XOR(des_single__2_sbox_in__0__2,plaintext[61]);
  plaintext[13] = XOR(des_single__2_sbox_in__0__3,plaintext[13]);
  plaintext[15] = XOR(des_single__2_sbox_in__0__4,plaintext[15]);
  des_single__2_sbox_in__1__1 = XOR(key[8],plaintext[32]);
  des_single__2_sbox_in__1__2 = XOR(key[32],plaintext[24]);
  des_single__2_sbox_in__1__3 = XOR(key[42],plaintext[16]);
  des_single__2_sbox_in__1__4 = XOR(key[49],plaintext[8]);
  des_single__2_sbox_in__1__5 = XOR(key[59],plaintext[0]);
  des_single__2_sbox_in__1__6 = XOR(key[17],plaintext[58]);
  sbox__1(des_single__2_sbox_in__1__1,des_single__2_sbox_in__1__2,des_single__2_sbox_in__1__3,des_single__2_sbox_in__1__4,des_single__2_sbox_in__1__5,des_single__2_sbox_in__1__6,&des_single__2_sbox_in__1__1,&des_single__2_sbox_in__1__2,&des_single__2_sbox_in__1__3,&des_single__2_sbox_in__1__4);
  plaintext[27] = XOR(des_single__2_sbox_in__1__1,plaintext[27]);
  plaintext[39] = XOR(des_single__2_sbox_in__1__2,plaintext[39]);
  plaintext[49] = XOR(des_single__2_sbox_in__1__3,plaintext[49]);
  plaintext[53] = XOR(des_single__2_sbox_in__1__4,plaintext[53]);
  des_single__2_sbox_in__2__1 = XOR(key[43],plaintext[0]);
  des_single__2_sbox_in__2__2 = XOR(key[10],plaintext[58]);
  des_single__2_sbox_in__2__3 = XOR(key[1],plaintext[50]);
  des_single__2_sbox_in__2__4 = XOR(key[0],plaintext[42]);
  des_single__2_sbox_in__2__5 = XOR(key[48],plaintext[34]);
  des_single__2_sbox_in__2__6 = XOR(key[33],plaintext[26]);
  sbox__2(des_single__2_sbox_in__2__1,des_single__2_sbox_in__2__2,des_single__2_sbox_in__2__3,des_single__2_sbox_in__2__4,des_single__2_sbox_in__2__5,des_single__2_sbox_in__2__6,&des_single__2_sbox_in__2__1,&des_single__2_sbox_in__2__2,&des_single__2_sbox_in__2__3,&des_single__2_sbox_in__2__4);
  plaintext[5] = XOR(des_single__2_sbox_in__2__1,plaintext[5]);
  plaintext[3] = XOR(des_single__2_sbox_in__2__2,plaintext[3]);
  plaintext[23] = XOR(des_single__2_sbox_in__2__3,plaintext[23]);
  plaintext[17] = XOR(des_single__2_sbox_in__2__4,plaintext[17]);
  des_single__2_sbox_in__3__1 = XOR(key[34],plaintext[34]);
  des_single__2_sbox_in__3__2 = XOR(key[41],plaintext[26]);
  des_single__2_sbox_in__3__3 = XOR(key[40],plaintext[18]);
  des_single__2_sbox_in__3__4 = XOR(key[2],plaintext[10]);
  des_single__2_sbox_in__3__5 = XOR(key[58],plaintext[2]);
  des_single__2_sbox_in__3__6 = XOR(key[16],plaintext[60]);
  sbox__3(des_single__2_sbox_in__3__1,des_single__2_sbox_in__3__2,des_single__2_sbox_in__3__3,des_single__2_sbox_in__3__4,des_single__2_sbox_in__3__5,des_single__2_sbox_in__3__6,&des_single__2_sbox_in__3__1,&des_single__2_sbox_in__3__2,&des_single__2_sbox_in__3__3,&des_single__2_sbox_in__3__4);
  plaintext[55] = XOR(des_single__2_sbox_in__3__1,plaintext[55]);
  plaintext[37] = XOR(des_single__2_sbox_in__3__2,plaintext[37]);
  plaintext[51] = XOR(des_single__2_sbox_in__3__3,plaintext[51]);
  plaintext[57] = XOR(des_single__2_sbox_in__3__4,plaintext[57]);
  des_single__2_sbox_in__4__1 = XOR(key[60],plaintext[2]);
  des_single__2_sbox_in__4__2 = XOR(key[3],plaintext[60]);
  des_single__2_sbox_in__4__3 = XOR(key[14],plaintext[52]);
  des_single__2_sbox_in__4__4 = XOR(key[29],plaintext[44]);
  des_single__2_sbox_in__4__5 = XOR(key[12],plaintext[36]);
  des_single__2_sbox_in__4__6 = XOR(key[46],plaintext[28]);
  sbox__4(des_single__2_sbox_in__4__1,des_single__2_sbox_in__4__2,des_single__2_sbox_in__4__3,des_single__2_sbox_in__4__4,des_single__2_sbox_in__4__5,des_single__2_sbox_in__4__6,&des_single__2_sbox_in__4__1,&des_single__2_sbox_in__4__2,&des_single__2_sbox_in__4__3,&des_single__2_sbox_in__4__4);
  plaintext[1] = XOR(des_single__2_sbox_in__4__1,plaintext[1]);
  plaintext[19] = XOR(des_single__2_sbox_in__4__2,plaintext[19]);
  plaintext[63] = XOR(des_single__2_sbox_in__4__3,plaintext[63]);
  plaintext[41] = XOR(des_single__2_sbox_in__4__4,plaintext[41]);
  des_single__2_sbox_in__5__1 = XOR(key[22],plaintext[36]);
  des_single__2_sbox_in__5__2 = XOR(key[5],plaintext[28]);
  des_single__2_sbox_in__5__3 = XOR(key[11],plaintext[20]);
  des_single__2_sbox_in__5__4 = XOR(key[28],plaintext[12]);
  des_single__2_sbox_in__5__5 = XOR(key[61],plaintext[4]);
  des_single__2_sbox_in__5__6 = XOR(key[4],plaintext[62]);
  sbox__5(des_single__2_sbox_in__5__1,des_single__2_sbox_in__5__2,des_single__2_sbox_in__5__3,des_single__2_sbox_in__5__4,des_single__2_sbox_in__5__5,des_single__2_sbox_in__5__6,&des_single__2_sbox_in__5__1,&des_single__2_sbox_in__5__2,&des_single__2_sbox_in__5__3,&des_single__2_sbox_in__5__4);
  plaintext[33] = XOR(des_single__2_sbox_in__5__1,plaintext[33]);
  plaintext[31] = XOR(des_single__2_sbox_in__5__2,plaintext[31]);
  plaintext[43] = XOR(des_single__2_sbox_in__5__3,plaintext[43]);
  plaintext[45] = XOR(des_single__2_sbox_in__5__4,plaintext[45]);
  des_single__2_sbox_in__6__1 = XOR(key[36],plaintext[4]);
  des_single__2_sbox_in__6__2 = XOR(key[27],plaintext[62]);
  des_single__2_sbox_in__6__3 = XOR(key[13],plaintext[54]);
  des_single__2_sbox_in__6__4 = XOR(key[38],plaintext[46]);
  des_single__2_sbox_in__6__5 = XOR(key[53],plaintext[38]);
  des_single__2_sbox_in__6__6 = XOR(key[62],plaintext[30]);
  sbox__6(des_single__2_sbox_in__6__1,des_single__2_sbox_in__6__2,des_single__2_sbox_in__6__3,des_single__2_sbox_in__6__4,des_single__2_sbox_in__6__5,des_single__2_sbox_in__6__6,&des_single__2_sbox_in__6__1,&des_single__2_sbox_in__6__2,&des_single__2_sbox_in__6__3,&des_single__2_sbox_in__6__4);
  plaintext[7] = XOR(des_single__2_sbox_in__6__1,plaintext[7]);
  plaintext[35] = XOR(des_single__2_sbox_in__6__2,plaintext[35]);
  plaintext[21] = XOR(des_single__2_sbox_in__6__3,plaintext[21]);
  plaintext[9] = XOR(des_single__2_sbox_in__6__4,plaintext[9]);
  des_single__2_sbox_in__7__1 = XOR(key[20],plaintext[38]);
  des_single__2_sbox_in__7__2 = XOR(key[52],plaintext[30]);
  des_single__2_sbox_in__7__3 = XOR(key[19],plaintext[22]);
  des_single__2_sbox_in__7__4 = XOR(key[37],plaintext[14]);
  des_single__2_sbox_in__7__5 = XOR(key[30],plaintext[6]);
  des_single__2_sbox_in__7__6 = XOR(key[6],plaintext[56]);
  sbox__7(des_single__2_sbox_in__7__1,des_single__2_sbox_in__7__2,des_single__2_sbox_in__7__3,des_single__2_sbox_in__7__4,des_single__2_sbox_in__7__5,des_single__2_sbox_in__7__6,&des_single__2_sbox_in__7__1,&des_single__2_sbox_in__7__2,&des_single__2_sbox_in__7__3,&des_single__2_sbox_in__7__4);
  plaintext[25] = XOR(des_single__2_sbox_in__7__1,plaintext[25]);
  plaintext[47] = XOR(des_single__2_sbox_in__7__2,plaintext[47]);
  plaintext[11] = XOR(des_single__2_sbox_in__7__3,plaintext[11]);
  plaintext[29] = XOR(des_single__2_sbox_in__7__4,plaintext[29]);
  des_single__3_sbox_in__0__1 = XOR(key[34],plaintext[7]);
  des_single__3_sbox_in__0__2 = XOR(key[10],plaintext[57]);
  des_single__3_sbox_in__0__3 = XOR(key[58],plaintext[49]);
  des_single__3_sbox_in__0__4 = XOR(key[48],plaintext[41]);
  des_single__3_sbox_in__0__5 = XOR(key[8],plaintext[33]);
  des_single__3_sbox_in__0__6 = XOR(key[41],plaintext[25]);
  sbox__0(des_single__3_sbox_in__0__1,des_single__3_sbox_in__0__2,des_single__3_sbox_in__0__3,des_single__3_sbox_in__0__4,des_single__3_sbox_in__0__5,des_single__3_sbox_in__0__6,&des_single__3_sbox_in__0__1,&des_single__3_sbox_in__0__2,&des_single__3_sbox_in__0__3,&des_single__3_sbox_in__0__4);
  plaintext[58] = XOR(des_single__3_sbox_in__0__1,plaintext[58]);
  plaintext[60] = XOR(des_single__3_sbox_in__0__2,plaintext[60]);
  plaintext[12] = XOR(des_single__3_sbox_in__0__3,plaintext[12]);
  plaintext[14] = XOR(des_single__3_sbox_in__0__4,plaintext[14]);
  des_single__3_sbox_in__1__1 = XOR(key[57],plaintext[33]);
  des_single__3_sbox_in__1__2 = XOR(key[16],plaintext[25]);
  des_single__3_sbox_in__1__3 = XOR(key[26],plaintext[17]);
  des_single__3_sbox_in__1__4 = XOR(key[33],plaintext[9]);
  des_single__3_sbox_in__1__5 = XOR(key[43],plaintext[1]);
  des_single__3_sbox_in__1__6 = XOR(key[1],plaintext[59]);
  sbox__1(des_single__3_sbox_in__1__1,des_single__3_sbox_in__1__2,des_single__3_sbox_in__1__3,des_single__3_sbox_in__1__4,des_single__3_sbox_in__1__5,des_single__3_sbox_in__1__6,&des_single__3_sbox_in__1__1,&des_single__3_sbox_in__1__2,&des_single__3_sbox_in__1__3,&des_single__3_sbox_in__1__4);
  plaintext[26] = XOR(des_single__3_sbox_in__1__1,plaintext[26]);
  plaintext[38] = XOR(des_single__3_sbox_in__1__2,plaintext[38]);
  plaintext[48] = XOR(des_single__3_sbox_in__1__3,plaintext[48]);
  plaintext[52] = XOR(des_single__3_sbox_in__1__4,plaintext[52]);
  des_single__3_sbox_in__2__1 = XOR(key[56],plaintext[1]);
  des_single__3_sbox_in__2__2 = XOR(key[59],plaintext[59]);
  des_single__3_sbox_in__2__3 = XOR(key[50],plaintext[51]);
  des_single__3_sbox_in__2__4 = XOR(key[49],plaintext[43]);
  des_single__3_sbox_in__2__5 = XOR(key[32],plaintext[35]);
  des_single__3_sbox_in__2__6 = XOR(key[17],plaintext[27]);
  sbox__2(des_single__3_sbox_in__2__1,des_single__3_sbox_in__2__2,des_single__3_sbox_in__2__3,des_single__3_sbox_in__2__4,des_single__3_sbox_in__2__5,des_single__3_sbox_in__2__6,&des_single__3_sbox_in__2__1,&des_single__3_sbox_in__2__2,&des_single__3_sbox_in__2__3,&des_single__3_sbox_in__2__4);
  plaintext[4] = XOR(des_single__3_sbox_in__2__1,plaintext[4]);
  plaintext[2] = XOR(des_single__3_sbox_in__2__2,plaintext[2]);
  plaintext[22] = XOR(des_single__3_sbox_in__2__3,plaintext[22]);
  plaintext[16] = XOR(des_single__3_sbox_in__2__4,plaintext[16]);
  des_single__3_sbox_in__3__1 = XOR(key[18],plaintext[35]);
  des_single__3_sbox_in__3__2 = XOR(key[25],plaintext[27]);
  des_single__3_sbox_in__3__3 = XOR(key[24],plaintext[19]);
  des_single__3_sbox_in__3__4 = XOR(key[51],plaintext[11]);
  des_single__3_sbox_in__3__5 = XOR(key[42],plaintext[3]);
  des_single__3_sbox_in__3__6 = XOR(key[0],plaintext[61]);
  sbox__3(des_single__3_sbox_in__3__1,des_single__3_sbox_in__3__2,des_single__3_sbox_in__3__3,des_single__3_sbox_in__3__4,des_single__3_sbox_in__3__5,des_single__3_sbox_in__3__6,&des_single__3_sbox_in__3__1,&des_single__3_sbox_in__3__2,&des_single__3_sbox_in__3__3,&des_single__3_sbox_in__3__4);
  plaintext[54] = XOR(des_single__3_sbox_in__3__1,plaintext[54]);
  plaintext[36] = XOR(des_single__3_sbox_in__3__2,plaintext[36]);
  plaintext[50] = XOR(des_single__3_sbox_in__3__3,plaintext[50]);
  plaintext[56] = XOR(des_single__3_sbox_in__3__4,plaintext[56]);
  des_single__3_sbox_in__4__1 = XOR(key[44],plaintext[3]);
  des_single__3_sbox_in__4__2 = XOR(key[54],plaintext[61]);
  des_single__3_sbox_in__4__3 = XOR(key[61],plaintext[53]);
  des_single__3_sbox_in__4__4 = XOR(key[13],plaintext[45]);
  des_single__3_sbox_in__4__5 = XOR(key[27],plaintext[37]);
  des_single__3_sbox_in__4__6 = XOR(key[30],plaintext[29]);
  sbox__4(des_single__3_sbox_in__4__1,des_single__3_sbox_in__4__2,des_single__3_sbox_in__4__3,des_single__3_sbox_in__4__4,des_single__3_sbox_in__4__5,des_single__3_sbox_in__4__6,&des_single__3_sbox_in__4__1,&des_single__3_sbox_in__4__2,&des_single__3_sbox_in__4__3,&des_single__3_sbox_in__4__4);
  plaintext[0] = XOR(des_single__3_sbox_in__4__1,plaintext[0]);
  plaintext[18] = XOR(des_single__3_sbox_in__4__2,plaintext[18]);
  plaintext[62] = XOR(des_single__3_sbox_in__4__3,plaintext[62]);
  plaintext[40] = XOR(des_single__3_sbox_in__4__4,plaintext[40]);
  des_single__3_sbox_in__5__1 = XOR(key[6],plaintext[37]);
  des_single__3_sbox_in__5__2 = XOR(key[52],plaintext[29]);
  des_single__3_sbox_in__5__3 = XOR(key[62],plaintext[21]);
  des_single__3_sbox_in__5__4 = XOR(key[12],plaintext[13]);
  des_single__3_sbox_in__5__5 = XOR(key[45],plaintext[5]);
  des_single__3_sbox_in__5__6 = XOR(key[19],plaintext[63]);
  sbox__5(des_single__3_sbox_in__5__1,des_single__3_sbox_in__5__2,des_single__3_sbox_in__5__3,des_single__3_sbox_in__5__4,des_single__3_sbox_in__5__5,des_single__3_sbox_in__5__6,&des_single__3_sbox_in__5__1,&des_single__3_sbox_in__5__2,&des_single__3_sbox_in__5__3,&des_single__3_sbox_in__5__4);
  plaintext[32] = XOR(des_single__3_sbox_in__5__1,plaintext[32]);
  plaintext[30] = XOR(des_single__3_sbox_in__5__2,plaintext[30]);
  plaintext[42] = XOR(des_single__3_sbox_in__5__3,plaintext[42]);
  plaintext[44] = XOR(des_single__3_sbox_in__5__4,plaintext[44]);
  des_single__3_sbox_in__6__1 = XOR(key[20],plaintext[5]);
  des_single__3_sbox_in__6__2 = XOR(key[11],plaintext[63]);
  des_single__3_sbox_in__6__3 = XOR(key[60],plaintext[55]);
  des_single__3_sbox_in__6__4 = XOR(key[22],plaintext[47]);
  des_single__3_sbox_in__6__5 = XOR(key[37],plaintext[39]);
  des_single__3_sbox_in__6__6 = XOR(key[46],plaintext[31]);
  sbox__6(des_single__3_sbox_in__6__1,des_single__3_sbox_in__6__2,des_single__3_sbox_in__6__3,des_single__3_sbox_in__6__4,des_single__3_sbox_in__6__5,des_single__3_sbox_in__6__6,&des_single__3_sbox_in__6__1,&des_single__3_sbox_in__6__2,&des_single__3_sbox_in__6__3,&des_single__3_sbox_in__6__4);
  plaintext[6] = XOR(des_single__3_sbox_in__6__1,plaintext[6]);
  plaintext[34] = XOR(des_single__3_sbox_in__6__2,plaintext[34]);
  plaintext[20] = XOR(des_single__3_sbox_in__6__3,plaintext[20]);
  plaintext[8] = XOR(des_single__3_sbox_in__6__4,plaintext[8]);
  des_single__3_sbox_in__7__1 = XOR(key[4],plaintext[39]);
  des_single__3_sbox_in__7__2 = XOR(key[36],plaintext[31]);
  des_single__3_sbox_in__7__3 = XOR(key[3],plaintext[23]);
  des_single__3_sbox_in__7__4 = XOR(key[21],plaintext[15]);
  des_single__3_sbox_in__7__5 = XOR(key[14],plaintext[7]);
  des_single__3_sbox_in__7__6 = XOR(key[53],plaintext[57]);
  sbox__7(des_single__3_sbox_in__7__1,des_single__3_sbox_in__7__2,des_single__3_sbox_in__7__3,des_single__3_sbox_in__7__4,des_single__3_sbox_in__7__5,des_single__3_sbox_in__7__6,&des_single__3_sbox_in__7__1,&des_single__3_sbox_in__7__2,&des_single__3_sbox_in__7__3,&des_single__3_sbox_in__7__4);
  plaintext[24] = XOR(des_single__3_sbox_in__7__1,plaintext[24]);
  plaintext[46] = XOR(des_single__3_sbox_in__7__2,plaintext[46]);
  plaintext[10] = XOR(des_single__3_sbox_in__7__3,plaintext[10]);
  plaintext[28] = XOR(des_single__3_sbox_in__7__4,plaintext[28]);
  des_single__4_sbox_in__0__1 = XOR(key[18],plaintext[6]);
  des_single__4_sbox_in__0__2 = XOR(key[59],plaintext[56]);
  des_single__4_sbox_in__0__3 = XOR(key[42],plaintext[48]);
  des_single__4_sbox_in__0__4 = XOR(key[32],plaintext[40]);
  des_single__4_sbox_in__0__5 = XOR(key[57],plaintext[32]);
  des_single__4_sbox_in__0__6 = XOR(key[25],plaintext[24]);
  sbox__0(des_single__4_sbox_in__0__1,des_single__4_sbox_in__0__2,des_single__4_sbox_in__0__3,des_single__4_sbox_in__0__4,des_single__4_sbox_in__0__5,des_single__4_sbox_in__0__6,&des_single__4_sbox_in__0__1,&des_single__4_sbox_in__0__2,&des_single__4_sbox_in__0__3,&des_single__4_sbox_in__0__4);
  plaintext[59] = XOR(des_single__4_sbox_in__0__1,plaintext[59]);
  plaintext[61] = XOR(des_single__4_sbox_in__0__2,plaintext[61]);
  plaintext[13] = XOR(des_single__4_sbox_in__0__3,plaintext[13]);
  plaintext[15] = XOR(des_single__4_sbox_in__0__4,plaintext[15]);
  des_single__4_sbox_in__1__1 = XOR(key[41],plaintext[32]);
  des_single__4_sbox_in__1__2 = XOR(key[0],plaintext[24]);
  des_single__4_sbox_in__1__3 = XOR(key[10],plaintext[16]);
  des_single__4_sbox_in__1__4 = XOR(key[17],plaintext[8]);
  des_single__4_sbox_in__1__5 = XOR(key[56],plaintext[0]);
  des_single__4_sbox_in__1__6 = XOR(key[50],plaintext[58]);
  sbox__1(des_single__4_sbox_in__1__1,des_single__4_sbox_in__1__2,des_single__4_sbox_in__1__3,des_single__4_sbox_in__1__4,des_single__4_sbox_in__1__5,des_single__4_sbox_in__1__6,&des_single__4_sbox_in__1__1,&des_single__4_sbox_in__1__2,&des_single__4_sbox_in__1__3,&des_single__4_sbox_in__1__4);
  plaintext[27] = XOR(des_single__4_sbox_in__1__1,plaintext[27]);
  plaintext[39] = XOR(des_single__4_sbox_in__1__2,plaintext[39]);
  plaintext[49] = XOR(des_single__4_sbox_in__1__3,plaintext[49]);
  plaintext[53] = XOR(des_single__4_sbox_in__1__4,plaintext[53]);
  des_single__4_sbox_in__2__1 = XOR(key[40],plaintext[0]);
  des_single__4_sbox_in__2__2 = XOR(key[43],plaintext[58]);
  des_single__4_sbox_in__2__3 = XOR(key[34],plaintext[50]);
  des_single__4_sbox_in__2__4 = XOR(key[33],plaintext[42]);
  des_single__4_sbox_in__2__5 = XOR(key[16],plaintext[34]);
  des_single__4_sbox_in__2__6 = XOR(key[1],plaintext[26]);
  sbox__2(des_single__4_sbox_in__2__1,des_single__4_sbox_in__2__2,des_single__4_sbox_in__2__3,des_single__4_sbox_in__2__4,des_single__4_sbox_in__2__5,des_single__4_sbox_in__2__6,&des_single__4_sbox_in__2__1,&des_single__4_sbox_in__2__2,&des_single__4_sbox_in__2__3,&des_single__4_sbox_in__2__4);
  plaintext[5] = XOR(des_single__4_sbox_in__2__1,plaintext[5]);
  plaintext[3] = XOR(des_single__4_sbox_in__2__2,plaintext[3]);
  plaintext[23] = XOR(des_single__4_sbox_in__2__3,plaintext[23]);
  plaintext[17] = XOR(des_single__4_sbox_in__2__4,plaintext[17]);
  des_single__4_sbox_in__3__1 = XOR(key[2],plaintext[34]);
  des_single__4_sbox_in__3__2 = XOR(key[9],plaintext[26]);
  des_single__4_sbox_in__3__3 = XOR(key[8],plaintext[18]);
  des_single__4_sbox_in__3__4 = XOR(key[35],plaintext[10]);
  des_single__4_sbox_in__3__5 = XOR(key[26],plaintext[2]);
  des_single__4_sbox_in__3__6 = XOR(key[49],plaintext[60]);
  sbox__3(des_single__4_sbox_in__3__1,des_single__4_sbox_in__3__2,des_single__4_sbox_in__3__3,des_single__4_sbox_in__3__4,des_single__4_sbox_in__3__5,des_single__4_sbox_in__3__6,&des_single__4_sbox_in__3__1,&des_single__4_sbox_in__3__2,&des_single__4_sbox_in__3__3,&des_single__4_sbox_in__3__4);
  plaintext[55] = XOR(des_single__4_sbox_in__3__1,plaintext[55]);
  plaintext[37] = XOR(des_single__4_sbox_in__3__2,plaintext[37]);
  plaintext[51] = XOR(des_single__4_sbox_in__3__3,plaintext[51]);
  plaintext[57] = XOR(des_single__4_sbox_in__3__4,plaintext[57]);
  des_single__4_sbox_in__4__1 = XOR(key[28],plaintext[2]);
  des_single__4_sbox_in__4__2 = XOR(key[38],plaintext[60]);
  des_single__4_sbox_in__4__3 = XOR(key[45],plaintext[52]);
  des_single__4_sbox_in__4__4 = XOR(key[60],plaintext[44]);
  des_single__4_sbox_in__4__5 = XOR(key[11],plaintext[36]);
  des_single__4_sbox_in__4__6 = XOR(key[14],plaintext[28]);
  sbox__4(des_single__4_sbox_in__4__1,des_single__4_sbox_in__4__2,des_single__4_sbox_in__4__3,des_single__4_sbox_in__4__4,des_single__4_sbox_in__4__5,des_single__4_sbox_in__4__6,&des_single__4_sbox_in__4__1,&des_single__4_sbox_in__4__2,&des_single__4_sbox_in__4__3,&des_single__4_sbox_in__4__4);
  plaintext[1] = XOR(des_single__4_sbox_in__4__1,plaintext[1]);
  plaintext[19] = XOR(des_single__4_sbox_in__4__2,plaintext[19]);
  plaintext[63] = XOR(des_single__4_sbox_in__4__3,plaintext[63]);
  plaintext[41] = XOR(des_single__4_sbox_in__4__4,plaintext[41]);
  des_single__4_sbox_in__5__1 = XOR(key[53],plaintext[36]);
  des_single__4_sbox_in__5__2 = XOR(key[36],plaintext[28]);
  des_single__4_sbox_in__5__3 = XOR(key[46],plaintext[20]);
  des_single__4_sbox_in__5__4 = XOR(key[27],plaintext[12]);
  des_single__4_sbox_in__5__5 = XOR(key[29],plaintext[4]);
  des_single__4_sbox_in__5__6 = XOR(key[3],plaintext[62]);
  sbox__5(des_single__4_sbox_in__5__1,des_single__4_sbox_in__5__2,des_single__4_sbox_in__5__3,des_single__4_sbox_in__5__4,des_single__4_sbox_in__5__5,des_single__4_sbox_in__5__6,&des_single__4_sbox_in__5__1,&des_single__4_sbox_in__5__2,&des_single__4_sbox_in__5__3,&des_single__4_sbox_in__5__4);
  plaintext[33] = XOR(des_single__4_sbox_in__5__1,plaintext[33]);
  plaintext[31] = XOR(des_single__4_sbox_in__5__2,plaintext[31]);
  plaintext[43] = XOR(des_single__4_sbox_in__5__3,plaintext[43]);
  plaintext[45] = XOR(des_single__4_sbox_in__5__4,plaintext[45]);
  des_single__4_sbox_in__6__1 = XOR(key[4],plaintext[4]);
  des_single__4_sbox_in__6__2 = XOR(key[62],plaintext[62]);
  des_single__4_sbox_in__6__3 = XOR(key[44],plaintext[54]);
  des_single__4_sbox_in__6__4 = XOR(key[6],plaintext[46]);
  des_single__4_sbox_in__6__5 = XOR(key[21],plaintext[38]);
  des_single__4_sbox_in__6__6 = XOR(key[30],plaintext[30]);
  sbox__6(des_single__4_sbox_in__6__1,des_single__4_sbox_in__6__2,des_single__4_sbox_in__6__3,des_single__4_sbox_in__6__4,des_single__4_sbox_in__6__5,des_single__4_sbox_in__6__6,&des_single__4_sbox_in__6__1,&des_single__4_sbox_in__6__2,&des_single__4_sbox_in__6__3,&des_single__4_sbox_in__6__4);
  plaintext[7] = XOR(des_single__4_sbox_in__6__1,plaintext[7]);
  plaintext[35] = XOR(des_single__4_sbox_in__6__2,plaintext[35]);
  plaintext[21] = XOR(des_single__4_sbox_in__6__3,plaintext[21]);
  plaintext[9] = XOR(des_single__4_sbox_in__6__4,plaintext[9]);
  des_single__4_sbox_in__7__1 = XOR(key[19],plaintext[38]);
  des_single__4_sbox_in__7__2 = XOR(key[20],plaintext[30]);
  des_single__4_sbox_in__7__3 = XOR(key[54],plaintext[22]);
  des_single__4_sbox_in__7__4 = XOR(key[5],plaintext[14]);
  des_single__4_sbox_in__7__5 = XOR(key[61],plaintext[6]);
  des_single__4_sbox_in__7__6 = XOR(key[37],plaintext[56]);
  sbox__7(des_single__4_sbox_in__7__1,des_single__4_sbox_in__7__2,des_single__4_sbox_in__7__3,des_single__4_sbox_in__7__4,des_single__4_sbox_in__7__5,des_single__4_sbox_in__7__6,&des_single__4_sbox_in__7__1,&des_single__4_sbox_in__7__2,&des_single__4_sbox_in__7__3,&des_single__4_sbox_in__7__4);
  plaintext[25] = XOR(des_single__4_sbox_in__7__1,plaintext[25]);
  plaintext[47] = XOR(des_single__4_sbox_in__7__2,plaintext[47]);
  plaintext[11] = XOR(des_single__4_sbox_in__7__3,plaintext[11]);
  plaintext[29] = XOR(des_single__4_sbox_in__7__4,plaintext[29]);
  des_single__5_sbox_in__0__1 = XOR(key[2],plaintext[7]);
  des_single__5_sbox_in__0__2 = XOR(key[43],plaintext[57]);
  des_single__5_sbox_in__0__3 = XOR(key[26],plaintext[49]);
  des_single__5_sbox_in__0__4 = XOR(key[16],plaintext[41]);
  des_single__5_sbox_in__0__5 = XOR(key[41],plaintext[33]);
  des_single__5_sbox_in__0__6 = XOR(key[9],plaintext[25]);
  sbox__0(des_single__5_sbox_in__0__1,des_single__5_sbox_in__0__2,des_single__5_sbox_in__0__3,des_single__5_sbox_in__0__4,des_single__5_sbox_in__0__5,des_single__5_sbox_in__0__6,&des_single__5_sbox_in__0__1,&des_single__5_sbox_in__0__2,&des_single__5_sbox_in__0__3,&des_single__5_sbox_in__0__4);
  plaintext[58] = XOR(des_single__5_sbox_in__0__1,plaintext[58]);
  plaintext[60] = XOR(des_single__5_sbox_in__0__2,plaintext[60]);
  plaintext[12] = XOR(des_single__5_sbox_in__0__3,plaintext[12]);
  plaintext[14] = XOR(des_single__5_sbox_in__0__4,plaintext[14]);
  des_single__5_sbox_in__1__1 = XOR(key[25],plaintext[33]);
  des_single__5_sbox_in__1__2 = XOR(key[49],plaintext[25]);
  des_single__5_sbox_in__1__3 = XOR(key[59],plaintext[17]);
  des_single__5_sbox_in__1__4 = XOR(key[1],plaintext[9]);
  des_single__5_sbox_in__1__5 = XOR(key[40],plaintext[1]);
  des_single__5_sbox_in__1__6 = XOR(key[34],plaintext[59]);
  sbox__1(des_single__5_sbox_in__1__1,des_single__5_sbox_in__1__2,des_single__5_sbox_in__1__3,des_single__5_sbox_in__1__4,des_single__5_sbox_in__1__5,des_single__5_sbox_in__1__6,&des_single__5_sbox_in__1__1,&des_single__5_sbox_in__1__2,&des_single__5_sbox_in__1__3,&des_single__5_sbox_in__1__4);
  plaintext[26] = XOR(des_single__5_sbox_in__1__1,plaintext[26]);
  plaintext[38] = XOR(des_single__5_sbox_in__1__2,plaintext[38]);
  plaintext[48] = XOR(des_single__5_sbox_in__1__3,plaintext[48]);
  plaintext[52] = XOR(des_single__5_sbox_in__1__4,plaintext[52]);
  des_single__5_sbox_in__2__1 = XOR(key[24],plaintext[1]);
  des_single__5_sbox_in__2__2 = XOR(key[56],plaintext[59]);
  des_single__5_sbox_in__2__3 = XOR(key[18],plaintext[51]);
  des_single__5_sbox_in__2__4 = XOR(key[17],plaintext[43]);
  des_single__5_sbox_in__2__5 = XOR(key[0],plaintext[35]);
  des_single__5_sbox_in__2__6 = XOR(key[50],plaintext[27]);
  sbox__2(des_single__5_sbox_in__2__1,des_single__5_sbox_in__2__2,des_single__5_sbox_in__2__3,des_single__5_sbox_in__2__4,des_single__5_sbox_in__2__5,des_single__5_sbox_in__2__6,&des_single__5_sbox_in__2__1,&des_single__5_sbox_in__2__2,&des_single__5_sbox_in__2__3,&des_single__5_sbox_in__2__4);
  plaintext[4] = XOR(des_single__5_sbox_in__2__1,plaintext[4]);
  plaintext[2] = XOR(des_single__5_sbox_in__2__2,plaintext[2]);
  plaintext[22] = XOR(des_single__5_sbox_in__2__3,plaintext[22]);
  plaintext[16] = XOR(des_single__5_sbox_in__2__4,plaintext[16]);
  des_single__5_sbox_in__3__1 = XOR(key[51],plaintext[35]);
  des_single__5_sbox_in__3__2 = XOR(key[58],plaintext[27]);
  des_single__5_sbox_in__3__3 = XOR(key[57],plaintext[19]);
  des_single__5_sbox_in__3__4 = XOR(key[48],plaintext[11]);
  des_single__5_sbox_in__3__5 = XOR(key[10],plaintext[3]);
  des_single__5_sbox_in__3__6 = XOR(key[33],plaintext[61]);
  sbox__3(des_single__5_sbox_in__3__1,des_single__5_sbox_in__3__2,des_single__5_sbox_in__3__3,des_single__5_sbox_in__3__4,des_single__5_sbox_in__3__5,des_single__5_sbox_in__3__6,&des_single__5_sbox_in__3__1,&des_single__5_sbox_in__3__2,&des_single__5_sbox_in__3__3,&des_single__5_sbox_in__3__4);
  plaintext[54] = XOR(des_single__5_sbox_in__3__1,plaintext[54]);
  plaintext[36] = XOR(des_single__5_sbox_in__3__2,plaintext[36]);
  plaintext[50] = XOR(des_single__5_sbox_in__3__3,plaintext[50]);
  plaintext[56] = XOR(des_single__5_sbox_in__3__4,plaintext[56]);
  des_single__5_sbox_in__4__1 = XOR(key[12],plaintext[3]);
  des_single__5_sbox_in__4__2 = XOR(key[22],plaintext[61]);
  des_single__5_sbox_in__4__3 = XOR(key[29],plaintext[53]);
  des_single__5_sbox_in__4__4 = XOR(key[44],plaintext[45]);
  des_single__5_sbox_in__4__5 = XOR(key[62],plaintext[37]);
  des_single__5_sbox_in__4__6 = XOR(key[61],plaintext[29]);
  sbox__4(des_single__5_sbox_in__4__1,des_single__5_sbox_in__4__2,des_single__5_sbox_in__4__3,des_single__5_sbox_in__4__4,des_single__5_sbox_in__4__5,des_single__5_sbox_in__4__6,&des_single__5_sbox_in__4__1,&des_single__5_sbox_in__4__2,&des_single__5_sbox_in__4__3,&des_single__5_sbox_in__4__4);
  plaintext[0] = XOR(des_single__5_sbox_in__4__1,plaintext[0]);
  plaintext[18] = XOR(des_single__5_sbox_in__4__2,plaintext[18]);
  plaintext[62] = XOR(des_single__5_sbox_in__4__3,plaintext[62]);
  plaintext[40] = XOR(des_single__5_sbox_in__4__4,plaintext[40]);
  des_single__5_sbox_in__5__1 = XOR(key[37],plaintext[37]);
  des_single__5_sbox_in__5__2 = XOR(key[20],plaintext[29]);
  des_single__5_sbox_in__5__3 = XOR(key[30],plaintext[21]);
  des_single__5_sbox_in__5__4 = XOR(key[11],plaintext[13]);
  des_single__5_sbox_in__5__5 = XOR(key[13],plaintext[5]);
  des_single__5_sbox_in__5__6 = XOR(key[54],plaintext[63]);
  sbox__5(des_single__5_sbox_in__5__1,des_single__5_sbox_in__5__2,des_single__5_sbox_in__5__3,des_single__5_sbox_in__5__4,des_single__5_sbox_in__5__5,des_single__5_sbox_in__5__6,&des_single__5_sbox_in__5__1,&des_single__5_sbox_in__5__2,&des_single__5_sbox_in__5__3,&des_single__5_sbox_in__5__4);
  plaintext[32] = XOR(des_single__5_sbox_in__5__1,plaintext[32]);
  plaintext[30] = XOR(des_single__5_sbox_in__5__2,plaintext[30]);
  plaintext[42] = XOR(des_single__5_sbox_in__5__3,plaintext[42]);
  plaintext[44] = XOR(des_single__5_sbox_in__5__4,plaintext[44]);
  des_single__5_sbox_in__6__1 = XOR(key[19],plaintext[5]);
  des_single__5_sbox_in__6__2 = XOR(key[46],plaintext[63]);
  des_single__5_sbox_in__6__3 = XOR(key[28],plaintext[55]);
  des_single__5_sbox_in__6__4 = XOR(key[53],plaintext[47]);
  des_single__5_sbox_in__6__5 = XOR(key[5],plaintext[39]);
  des_single__5_sbox_in__6__6 = XOR(key[14],plaintext[31]);
  sbox__6(des_single__5_sbox_in__6__1,des_single__5_sbox_in__6__2,des_single__5_sbox_in__6__3,des_single__5_sbox_in__6__4,des_single__5_sbox_in__6__5,des_single__5_sbox_in__6__6,&des_single__5_sbox_in__6__1,&des_single__5_sbox_in__6__2,&des_single__5_sbox_in__6__3,&des_single__5_sbox_in__6__4);
  plaintext[6] = XOR(des_single__5_sbox_in__6__1,plaintext[6]);
  plaintext[34] = XOR(des_single__5_sbox_in__6__2,plaintext[34]);
  plaintext[20] = XOR(des_single__5_sbox_in__6__3,plaintext[20]);
  plaintext[8] = XOR(des_single__5_sbox_in__6__4,plaintext[8]);
  des_single__5_sbox_in__7__1 = XOR(key[3],plaintext[39]);
  des_single__5_sbox_in__7__2 = XOR(key[4],plaintext[31]);
  des_single__5_sbox_in__7__3 = XOR(key[38],plaintext[23]);
  des_single__5_sbox_in__7__4 = XOR(key[52],plaintext[15]);
  des_single__5_sbox_in__7__5 = XOR(key[45],plaintext[7]);
  des_single__5_sbox_in__7__6 = XOR(key[21],plaintext[57]);
  sbox__7(des_single__5_sbox_in__7__1,des_single__5_sbox_in__7__2,des_single__5_sbox_in__7__3,des_single__5_sbox_in__7__4,des_single__5_sbox_in__7__5,des_single__5_sbox_in__7__6,&des_single__5_sbox_in__7__1,&des_single__5_sbox_in__7__2,&des_single__5_sbox_in__7__3,&des_single__5_sbox_in__7__4);
  plaintext[24] = XOR(des_single__5_sbox_in__7__1,plaintext[24]);
  plaintext[46] = XOR(des_single__5_sbox_in__7__2,plaintext[46]);
  plaintext[10] = XOR(des_single__5_sbox_in__7__3,plaintext[10]);
  plaintext[28] = XOR(des_single__5_sbox_in__7__4,plaintext[28]);
  des_single__6_sbox_in__0__1 = XOR(key[51],plaintext[6]);
  des_single__6_sbox_in__0__2 = XOR(key[56],plaintext[56]);
  des_single__6_sbox_in__0__3 = XOR(key[10],plaintext[48]);
  des_single__6_sbox_in__0__4 = XOR(key[0],plaintext[40]);
  des_single__6_sbox_in__0__5 = XOR(key[25],plaintext[32]);
  des_single__6_sbox_in__0__6 = XOR(key[58],plaintext[24]);
  sbox__0(des_single__6_sbox_in__0__1,des_single__6_sbox_in__0__2,des_single__6_sbox_in__0__3,des_single__6_sbox_in__0__4,des_single__6_sbox_in__0__5,des_single__6_sbox_in__0__6,&des_single__6_sbox_in__0__1,&des_single__6_sbox_in__0__2,&des_single__6_sbox_in__0__3,&des_single__6_sbox_in__0__4);
  plaintext[59] = XOR(des_single__6_sbox_in__0__1,plaintext[59]);
  plaintext[61] = XOR(des_single__6_sbox_in__0__2,plaintext[61]);
  plaintext[13] = XOR(des_single__6_sbox_in__0__3,plaintext[13]);
  plaintext[15] = XOR(des_single__6_sbox_in__0__4,plaintext[15]);
  des_single__6_sbox_in__1__1 = XOR(key[9],plaintext[32]);
  des_single__6_sbox_in__1__2 = XOR(key[33],plaintext[24]);
  des_single__6_sbox_in__1__3 = XOR(key[43],plaintext[16]);
  des_single__6_sbox_in__1__4 = XOR(key[50],plaintext[8]);
  des_single__6_sbox_in__1__5 = XOR(key[24],plaintext[0]);
  des_single__6_sbox_in__1__6 = XOR(key[18],plaintext[58]);
  sbox__1(des_single__6_sbox_in__1__1,des_single__6_sbox_in__1__2,des_single__6_sbox_in__1__3,des_single__6_sbox_in__1__4,des_single__6_sbox_in__1__5,des_single__6_sbox_in__1__6,&des_single__6_sbox_in__1__1,&des_single__6_sbox_in__1__2,&des_single__6_sbox_in__1__3,&des_single__6_sbox_in__1__4);
  plaintext[27] = XOR(des_single__6_sbox_in__1__1,plaintext[27]);
  plaintext[39] = XOR(des_single__6_sbox_in__1__2,plaintext[39]);
  plaintext[49] = XOR(des_single__6_sbox_in__1__3,plaintext[49]);
  plaintext[53] = XOR(des_single__6_sbox_in__1__4,plaintext[53]);
  des_single__6_sbox_in__2__1 = XOR(key[8],plaintext[0]);
  des_single__6_sbox_in__2__2 = XOR(key[40],plaintext[58]);
  des_single__6_sbox_in__2__3 = XOR(key[2],plaintext[50]);
  des_single__6_sbox_in__2__4 = XOR(key[1],plaintext[42]);
  des_single__6_sbox_in__2__5 = XOR(key[49],plaintext[34]);
  des_single__6_sbox_in__2__6 = XOR(key[34],plaintext[26]);
  sbox__2(des_single__6_sbox_in__2__1,des_single__6_sbox_in__2__2,des_single__6_sbox_in__2__3,des_single__6_sbox_in__2__4,des_single__6_sbox_in__2__5,des_single__6_sbox_in__2__6,&des_single__6_sbox_in__2__1,&des_single__6_sbox_in__2__2,&des_single__6_sbox_in__2__3,&des_single__6_sbox_in__2__4);
  plaintext[5] = XOR(des_single__6_sbox_in__2__1,plaintext[5]);
  plaintext[3] = XOR(des_single__6_sbox_in__2__2,plaintext[3]);
  plaintext[23] = XOR(des_single__6_sbox_in__2__3,plaintext[23]);
  plaintext[17] = XOR(des_single__6_sbox_in__2__4,plaintext[17]);
  des_single__6_sbox_in__3__1 = XOR(key[35],plaintext[34]);
  des_single__6_sbox_in__3__2 = XOR(key[42],plaintext[26]);
  des_single__6_sbox_in__3__3 = XOR(key[41],plaintext[18]);
  des_single__6_sbox_in__3__4 = XOR(key[32],plaintext[10]);
  des_single__6_sbox_in__3__5 = XOR(key[59],plaintext[2]);
  des_single__6_sbox_in__3__6 = XOR(key[17],plaintext[60]);
  sbox__3(des_single__6_sbox_in__3__1,des_single__6_sbox_in__3__2,des_single__6_sbox_in__3__3,des_single__6_sbox_in__3__4,des_single__6_sbox_in__3__5,des_single__6_sbox_in__3__6,&des_single__6_sbox_in__3__1,&des_single__6_sbox_in__3__2,&des_single__6_sbox_in__3__3,&des_single__6_sbox_in__3__4);
  plaintext[55] = XOR(des_single__6_sbox_in__3__1,plaintext[55]);
  plaintext[37] = XOR(des_single__6_sbox_in__3__2,plaintext[37]);
  plaintext[51] = XOR(des_single__6_sbox_in__3__3,plaintext[51]);
  plaintext[57] = XOR(des_single__6_sbox_in__3__4,plaintext[57]);
  des_single__6_sbox_in__4__1 = XOR(key[27],plaintext[2]);
  des_single__6_sbox_in__4__2 = XOR(key[6],plaintext[60]);
  des_single__6_sbox_in__4__3 = XOR(key[13],plaintext[52]);
  des_single__6_sbox_in__4__4 = XOR(key[28],plaintext[44]);
  des_single__6_sbox_in__4__5 = XOR(key[46],plaintext[36]);
  des_single__6_sbox_in__4__6 = XOR(key[45],plaintext[28]);
  sbox__4(des_single__6_sbox_in__4__1,des_single__6_sbox_in__4__2,des_single__6_sbox_in__4__3,des_single__6_sbox_in__4__4,des_single__6_sbox_in__4__5,des_single__6_sbox_in__4__6,&des_single__6_sbox_in__4__1,&des_single__6_sbox_in__4__2,&des_single__6_sbox_in__4__3,&des_single__6_sbox_in__4__4);
  plaintext[1] = XOR(des_single__6_sbox_in__4__1,plaintext[1]);
  plaintext[19] = XOR(des_single__6_sbox_in__4__2,plaintext[19]);
  plaintext[63] = XOR(des_single__6_sbox_in__4__3,plaintext[63]);
  plaintext[41] = XOR(des_single__6_sbox_in__4__4,plaintext[41]);
  des_single__6_sbox_in__5__1 = XOR(key[21],plaintext[36]);
  des_single__6_sbox_in__5__2 = XOR(key[4],plaintext[28]);
  des_single__6_sbox_in__5__3 = XOR(key[14],plaintext[20]);
  des_single__6_sbox_in__5__4 = XOR(key[62],plaintext[12]);
  des_single__6_sbox_in__5__5 = XOR(key[60],plaintext[4]);
  des_single__6_sbox_in__5__6 = XOR(key[38],plaintext[62]);
  sbox__5(des_single__6_sbox_in__5__1,des_single__6_sbox_in__5__2,des_single__6_sbox_in__5__3,des_single__6_sbox_in__5__4,des_single__6_sbox_in__5__5,des_single__6_sbox_in__5__6,&des_single__6_sbox_in__5__1,&des_single__6_sbox_in__5__2,&des_single__6_sbox_in__5__3,&des_single__6_sbox_in__5__4);
  plaintext[33] = XOR(des_single__6_sbox_in__5__1,plaintext[33]);
  plaintext[31] = XOR(des_single__6_sbox_in__5__2,plaintext[31]);
  plaintext[43] = XOR(des_single__6_sbox_in__5__3,plaintext[43]);
  plaintext[45] = XOR(des_single__6_sbox_in__5__4,plaintext[45]);
  des_single__6_sbox_in__6__1 = XOR(key[3],plaintext[4]);
  des_single__6_sbox_in__6__2 = XOR(key[30],plaintext[62]);
  des_single__6_sbox_in__6__3 = XOR(key[12],plaintext[54]);
  des_single__6_sbox_in__6__4 = XOR(key[37],plaintext[46]);
  des_single__6_sbox_in__6__5 = XOR(key[52],plaintext[38]);
  des_single__6_sbox_in__6__6 = XOR(key[61],plaintext[30]);
  sbox__6(des_single__6_sbox_in__6__1,des_single__6_sbox_in__6__2,des_single__6_sbox_in__6__3,des_single__6_sbox_in__6__4,des_single__6_sbox_in__6__5,des_single__6_sbox_in__6__6,&des_single__6_sbox_in__6__1,&des_single__6_sbox_in__6__2,&des_single__6_sbox_in__6__3,&des_single__6_sbox_in__6__4);
  plaintext[7] = XOR(des_single__6_sbox_in__6__1,plaintext[7]);
  plaintext[35] = XOR(des_single__6_sbox_in__6__2,plaintext[35]);
  plaintext[21] = XOR(des_single__6_sbox_in__6__3,plaintext[21]);
  plaintext[9] = XOR(des_single__6_sbox_in__6__4,plaintext[9]);
  des_single__6_sbox_in__7__1 = XOR(key[54],plaintext[38]);
  des_single__6_sbox_in__7__2 = XOR(key[19],plaintext[30]);
  des_single__6_sbox_in__7__3 = XOR(key[22],plaintext[22]);
  des_single__6_sbox_in__7__4 = XOR(key[36],plaintext[14]);
  des_single__6_sbox_in__7__5 = XOR(key[29],plaintext[6]);
  des_single__6_sbox_in__7__6 = XOR(key[5],plaintext[56]);
  sbox__7(des_single__6_sbox_in__7__1,des_single__6_sbox_in__7__2,des_single__6_sbox_in__7__3,des_single__6_sbox_in__7__4,des_single__6_sbox_in__7__5,des_single__6_sbox_in__7__6,&des_single__6_sbox_in__7__1,&des_single__6_sbox_in__7__2,&des_single__6_sbox_in__7__3,&des_single__6_sbox_in__7__4);
  plaintext[25] = XOR(des_single__6_sbox_in__7__1,plaintext[25]);
  plaintext[47] = XOR(des_single__6_sbox_in__7__2,plaintext[47]);
  plaintext[11] = XOR(des_single__6_sbox_in__7__3,plaintext[11]);
  plaintext[29] = XOR(des_single__6_sbox_in__7__4,plaintext[29]);
  des_single__7_sbox_in__0__1 = XOR(key[35],plaintext[7]);
  des_single__7_sbox_in__0__2 = XOR(key[40],plaintext[57]);
  des_single__7_sbox_in__0__3 = XOR(key[59],plaintext[49]);
  des_single__7_sbox_in__0__4 = XOR(key[49],plaintext[41]);
  des_single__7_sbox_in__0__5 = XOR(key[9],plaintext[33]);
  des_single__7_sbox_in__0__6 = XOR(key[42],plaintext[25]);
  sbox__0(des_single__7_sbox_in__0__1,des_single__7_sbox_in__0__2,des_single__7_sbox_in__0__3,des_single__7_sbox_in__0__4,des_single__7_sbox_in__0__5,des_single__7_sbox_in__0__6,&des_single__7_sbox_in__0__1,&des_single__7_sbox_in__0__2,&des_single__7_sbox_in__0__3,&des_single__7_sbox_in__0__4);
  plaintext[58] = XOR(des_single__7_sbox_in__0__1,plaintext[58]);
  plaintext[60] = XOR(des_single__7_sbox_in__0__2,plaintext[60]);
  plaintext[12] = XOR(des_single__7_sbox_in__0__3,plaintext[12]);
  plaintext[14] = XOR(des_single__7_sbox_in__0__4,plaintext[14]);
  des_single__7_sbox_in__1__1 = XOR(key[58],plaintext[33]);
  des_single__7_sbox_in__1__2 = XOR(key[17],plaintext[25]);
  des_single__7_sbox_in__1__3 = XOR(key[56],plaintext[17]);
  des_single__7_sbox_in__1__4 = XOR(key[34],plaintext[9]);
  des_single__7_sbox_in__1__5 = XOR(key[8],plaintext[1]);
  des_single__7_sbox_in__1__6 = XOR(key[2],plaintext[59]);
  sbox__1(des_single__7_sbox_in__1__1,des_single__7_sbox_in__1__2,des_single__7_sbox_in__1__3,des_single__7_sbox_in__1__4,des_single__7_sbox_in__1__5,des_single__7_sbox_in__1__6,&des_single__7_sbox_in__1__1,&des_single__7_sbox_in__1__2,&des_single__7_sbox_in__1__3,&des_single__7_sbox_in__1__4);
  plaintext[26] = XOR(des_single__7_sbox_in__1__1,plaintext[26]);
  plaintext[38] = XOR(des_single__7_sbox_in__1__2,plaintext[38]);
  plaintext[48] = XOR(des_single__7_sbox_in__1__3,plaintext[48]);
  plaintext[52] = XOR(des_single__7_sbox_in__1__4,plaintext[52]);
  des_single__7_sbox_in__2__1 = XOR(key[57],plaintext[1]);
  des_single__7_sbox_in__2__2 = XOR(key[24],plaintext[59]);
  des_single__7_sbox_in__2__3 = XOR(key[51],plaintext[51]);
  des_single__7_sbox_in__2__4 = XOR(key[50],plaintext[43]);
  des_single__7_sbox_in__2__5 = XOR(key[33],plaintext[35]);
  des_single__7_sbox_in__2__6 = XOR(key[18],plaintext[27]);
  sbox__2(des_single__7_sbox_in__2__1,des_single__7_sbox_in__2__2,des_single__7_sbox_in__2__3,des_single__7_sbox_in__2__4,des_single__7_sbox_in__2__5,des_single__7_sbox_in__2__6,&des_single__7_sbox_in__2__1,&des_single__7_sbox_in__2__2,&des_single__7_sbox_in__2__3,&des_single__7_sbox_in__2__4);
  plaintext[4] = XOR(des_single__7_sbox_in__2__1,plaintext[4]);
  plaintext[2] = XOR(des_single__7_sbox_in__2__2,plaintext[2]);
  plaintext[22] = XOR(des_single__7_sbox_in__2__3,plaintext[22]);
  plaintext[16] = XOR(des_single__7_sbox_in__2__4,plaintext[16]);
  des_single__7_sbox_in__3__1 = XOR(key[48],plaintext[35]);
  des_single__7_sbox_in__3__2 = XOR(key[26],plaintext[27]);
  des_single__7_sbox_in__3__3 = XOR(key[25],plaintext[19]);
  des_single__7_sbox_in__3__4 = XOR(key[16],plaintext[11]);
  des_single__7_sbox_in__3__5 = XOR(key[43],plaintext[3]);
  des_single__7_sbox_in__3__6 = XOR(key[1],plaintext[61]);
  sbox__3(des_single__7_sbox_in__3__1,des_single__7_sbox_in__3__2,des_single__7_sbox_in__3__3,des_single__7_sbox_in__3__4,des_single__7_sbox_in__3__5,des_single__7_sbox_in__3__6,&des_single__7_sbox_in__3__1,&des_single__7_sbox_in__3__2,&des_single__7_sbox_in__3__3,&des_single__7_sbox_in__3__4);
  plaintext[54] = XOR(des_single__7_sbox_in__3__1,plaintext[54]);
  plaintext[36] = XOR(des_single__7_sbox_in__3__2,plaintext[36]);
  plaintext[50] = XOR(des_single__7_sbox_in__3__3,plaintext[50]);
  plaintext[56] = XOR(des_single__7_sbox_in__3__4,plaintext[56]);
  des_single__7_sbox_in__4__1 = XOR(key[11],plaintext[3]);
  des_single__7_sbox_in__4__2 = XOR(key[53],plaintext[61]);
  des_single__7_sbox_in__4__3 = XOR(key[60],plaintext[53]);
  des_single__7_sbox_in__4__4 = XOR(key[12],plaintext[45]);
  des_single__7_sbox_in__4__5 = XOR(key[30],plaintext[37]);
  des_single__7_sbox_in__4__6 = XOR(key[29],plaintext[29]);
  sbox__4(des_single__7_sbox_in__4__1,des_single__7_sbox_in__4__2,des_single__7_sbox_in__4__3,des_single__7_sbox_in__4__4,des_single__7_sbox_in__4__5,des_single__7_sbox_in__4__6,&des_single__7_sbox_in__4__1,&des_single__7_sbox_in__4__2,&des_single__7_sbox_in__4__3,&des_single__7_sbox_in__4__4);
  plaintext[0] = XOR(des_single__7_sbox_in__4__1,plaintext[0]);
  plaintext[18] = XOR(des_single__7_sbox_in__4__2,plaintext[18]);
  plaintext[62] = XOR(des_single__7_sbox_in__4__3,plaintext[62]);
  plaintext[40] = XOR(des_single__7_sbox_in__4__4,plaintext[40]);
  des_single__7_sbox_in__5__1 = XOR(key[5],plaintext[37]);
  des_single__7_sbox_in__5__2 = XOR(key[19],plaintext[29]);
  des_single__7_sbox_in__5__3 = XOR(key[61],plaintext[21]);
  des_single__7_sbox_in__5__4 = XOR(key[46],plaintext[13]);
  des_single__7_sbox_in__5__5 = XOR(key[44],plaintext[5]);
  des_single__7_sbox_in__5__6 = XOR(key[22],plaintext[63]);
  sbox__5(des_single__7_sbox_in__5__1,des_single__7_sbox_in__5__2,des_single__7_sbox_in__5__3,des_single__7_sbox_in__5__4,des_single__7_sbox_in__5__5,des_single__7_sbox_in__5__6,&des_single__7_sbox_in__5__1,&des_single__7_sbox_in__5__2,&des_single__7_sbox_in__5__3,&des_single__7_sbox_in__5__4);
  plaintext[32] = XOR(des_single__7_sbox_in__5__1,plaintext[32]);
  plaintext[30] = XOR(des_single__7_sbox_in__5__2,plaintext[30]);
  plaintext[42] = XOR(des_single__7_sbox_in__5__3,plaintext[42]);
  plaintext[44] = XOR(des_single__7_sbox_in__5__4,plaintext[44]);
  des_single__7_sbox_in__6__1 = XOR(key[54],plaintext[5]);
  des_single__7_sbox_in__6__2 = XOR(key[14],plaintext[63]);
  des_single__7_sbox_in__6__3 = XOR(key[27],plaintext[55]);
  des_single__7_sbox_in__6__4 = XOR(key[21],plaintext[47]);
  des_single__7_sbox_in__6__5 = XOR(key[36],plaintext[39]);
  des_single__7_sbox_in__6__6 = XOR(key[45],plaintext[31]);
  sbox__6(des_single__7_sbox_in__6__1,des_single__7_sbox_in__6__2,des_single__7_sbox_in__6__3,des_single__7_sbox_in__6__4,des_single__7_sbox_in__6__5,des_single__7_sbox_in__6__6,&des_single__7_sbox_in__6__1,&des_single__7_sbox_in__6__2,&des_single__7_sbox_in__6__3,&des_single__7_sbox_in__6__4);
  plaintext[6] = XOR(des_single__7_sbox_in__6__1,plaintext[6]);
  plaintext[34] = XOR(des_single__7_sbox_in__6__2,plaintext[34]);
  plaintext[20] = XOR(des_single__7_sbox_in__6__3,plaintext[20]);
  plaintext[8] = XOR(des_single__7_sbox_in__6__4,plaintext[8]);
  des_single__7_sbox_in__7__1 = XOR(key[38],plaintext[39]);
  des_single__7_sbox_in__7__2 = XOR(key[3],plaintext[31]);
  des_single__7_sbox_in__7__3 = XOR(key[6],plaintext[23]);
  des_single__7_sbox_in__7__4 = XOR(key[20],plaintext[15]);
  des_single__7_sbox_in__7__5 = XOR(key[13],plaintext[7]);
  des_single__7_sbox_in__7__6 = XOR(key[52],plaintext[57]);
  sbox__7(des_single__7_sbox_in__7__1,des_single__7_sbox_in__7__2,des_single__7_sbox_in__7__3,des_single__7_sbox_in__7__4,des_single__7_sbox_in__7__5,des_single__7_sbox_in__7__6,&des_single__7_sbox_in__7__1,&des_single__7_sbox_in__7__2,&des_single__7_sbox_in__7__3,&des_single__7_sbox_in__7__4);
  plaintext[24] = XOR(des_single__7_sbox_in__7__1,plaintext[24]);
  plaintext[46] = XOR(des_single__7_sbox_in__7__2,plaintext[46]);
  plaintext[10] = XOR(des_single__7_sbox_in__7__3,plaintext[10]);
  plaintext[28] = XOR(des_single__7_sbox_in__7__4,plaintext[28]);
  des_single__8_sbox_in__0__1 = XOR(key[56],plaintext[6]);
  des_single__8_sbox_in__0__2 = XOR(key[32],plaintext[56]);
  des_single__8_sbox_in__0__3 = XOR(key[51],plaintext[48]);
  des_single__8_sbox_in__0__4 = XOR(key[41],plaintext[40]);
  des_single__8_sbox_in__0__5 = XOR(key[1],plaintext[32]);
  des_single__8_sbox_in__0__6 = XOR(key[34],plaintext[24]);
  sbox__0(des_single__8_sbox_in__0__1,des_single__8_sbox_in__0__2,des_single__8_sbox_in__0__3,des_single__8_sbox_in__0__4,des_single__8_sbox_in__0__5,des_single__8_sbox_in__0__6,&des_single__8_sbox_in__0__1,&des_single__8_sbox_in__0__2,&des_single__8_sbox_in__0__3,&des_single__8_sbox_in__0__4);
  plaintext[59] = XOR(des_single__8_sbox_in__0__1,plaintext[59]);
  plaintext[61] = XOR(des_single__8_sbox_in__0__2,plaintext[61]);
  plaintext[13] = XOR(des_single__8_sbox_in__0__3,plaintext[13]);
  plaintext[15] = XOR(des_single__8_sbox_in__0__4,plaintext[15]);
  des_single__8_sbox_in__1__1 = XOR(key[50],plaintext[32]);
  des_single__8_sbox_in__1__2 = XOR(key[9],plaintext[24]);
  des_single__8_sbox_in__1__3 = XOR(key[48],plaintext[16]);
  des_single__8_sbox_in__1__4 = XOR(key[26],plaintext[8]);
  des_single__8_sbox_in__1__5 = XOR(key[0],plaintext[0]);
  des_single__8_sbox_in__1__6 = XOR(key[59],plaintext[58]);
  sbox__1(des_single__8_sbox_in__1__1,des_single__8_sbox_in__1__2,des_single__8_sbox_in__1__3,des_single__8_sbox_in__1__4,des_single__8_sbox_in__1__5,des_single__8_sbox_in__1__6,&des_single__8_sbox_in__1__1,&des_single__8_sbox_in__1__2,&des_single__8_sbox_in__1__3,&des_single__8_sbox_in__1__4);
  plaintext[27] = XOR(des_single__8_sbox_in__1__1,plaintext[27]);
  plaintext[39] = XOR(des_single__8_sbox_in__1__2,plaintext[39]);
  plaintext[49] = XOR(des_single__8_sbox_in__1__3,plaintext[49]);
  plaintext[53] = XOR(des_single__8_sbox_in__1__4,plaintext[53]);
  des_single__8_sbox_in__2__1 = XOR(key[49],plaintext[0]);
  des_single__8_sbox_in__2__2 = XOR(key[16],plaintext[58]);
  des_single__8_sbox_in__2__3 = XOR(key[43],plaintext[50]);
  des_single__8_sbox_in__2__4 = XOR(key[42],plaintext[42]);
  des_single__8_sbox_in__2__5 = XOR(key[25],plaintext[34]);
  des_single__8_sbox_in__2__6 = XOR(key[10],plaintext[26]);
  sbox__2(des_single__8_sbox_in__2__1,des_single__8_sbox_in__2__2,des_single__8_sbox_in__2__3,des_single__8_sbox_in__2__4,des_single__8_sbox_in__2__5,des_single__8_sbox_in__2__6,&des_single__8_sbox_in__2__1,&des_single__8_sbox_in__2__2,&des_single__8_sbox_in__2__3,&des_single__8_sbox_in__2__4);
  plaintext[5] = XOR(des_single__8_sbox_in__2__1,plaintext[5]);
  plaintext[3] = XOR(des_single__8_sbox_in__2__2,plaintext[3]);
  plaintext[23] = XOR(des_single__8_sbox_in__2__3,plaintext[23]);
  plaintext[17] = XOR(des_single__8_sbox_in__2__4,plaintext[17]);
  des_single__8_sbox_in__3__1 = XOR(key[40],plaintext[34]);
  des_single__8_sbox_in__3__2 = XOR(key[18],plaintext[26]);
  des_single__8_sbox_in__3__3 = XOR(key[17],plaintext[18]);
  des_single__8_sbox_in__3__4 = XOR(key[8],plaintext[10]);
  des_single__8_sbox_in__3__5 = XOR(key[35],plaintext[2]);
  des_single__8_sbox_in__3__6 = XOR(key[58],plaintext[60]);
  sbox__3(des_single__8_sbox_in__3__1,des_single__8_sbox_in__3__2,des_single__8_sbox_in__3__3,des_single__8_sbox_in__3__4,des_single__8_sbox_in__3__5,des_single__8_sbox_in__3__6,&des_single__8_sbox_in__3__1,&des_single__8_sbox_in__3__2,&des_single__8_sbox_in__3__3,&des_single__8_sbox_in__3__4);
  plaintext[55] = XOR(des_single__8_sbox_in__3__1,plaintext[55]);
  plaintext[37] = XOR(des_single__8_sbox_in__3__2,plaintext[37]);
  plaintext[51] = XOR(des_single__8_sbox_in__3__3,plaintext[51]);
  plaintext[57] = XOR(des_single__8_sbox_in__3__4,plaintext[57]);
  des_single__8_sbox_in__4__1 = XOR(key[3],plaintext[2]);
  des_single__8_sbox_in__4__2 = XOR(key[45],plaintext[60]);
  des_single__8_sbox_in__4__3 = XOR(key[52],plaintext[52]);
  des_single__8_sbox_in__4__4 = XOR(key[4],plaintext[44]);
  des_single__8_sbox_in__4__5 = XOR(key[22],plaintext[36]);
  des_single__8_sbox_in__4__6 = XOR(key[21],plaintext[28]);
  sbox__4(des_single__8_sbox_in__4__1,des_single__8_sbox_in__4__2,des_single__8_sbox_in__4__3,des_single__8_sbox_in__4__4,des_single__8_sbox_in__4__5,des_single__8_sbox_in__4__6,&des_single__8_sbox_in__4__1,&des_single__8_sbox_in__4__2,&des_single__8_sbox_in__4__3,&des_single__8_sbox_in__4__4);
  plaintext[1] = XOR(des_single__8_sbox_in__4__1,plaintext[1]);
  plaintext[19] = XOR(des_single__8_sbox_in__4__2,plaintext[19]);
  plaintext[63] = XOR(des_single__8_sbox_in__4__3,plaintext[63]);
  plaintext[41] = XOR(des_single__8_sbox_in__4__4,plaintext[41]);
  des_single__8_sbox_in__5__1 = XOR(key[60],plaintext[36]);
  des_single__8_sbox_in__5__2 = XOR(key[11],plaintext[28]);
  des_single__8_sbox_in__5__3 = XOR(key[53],plaintext[20]);
  des_single__8_sbox_in__5__4 = XOR(key[38],plaintext[12]);
  des_single__8_sbox_in__5__5 = XOR(key[36],plaintext[4]);
  des_single__8_sbox_in__5__6 = XOR(key[14],plaintext[62]);
  sbox__5(des_single__8_sbox_in__5__1,des_single__8_sbox_in__5__2,des_single__8_sbox_in__5__3,des_single__8_sbox_in__5__4,des_single__8_sbox_in__5__5,des_single__8_sbox_in__5__6,&des_single__8_sbox_in__5__1,&des_single__8_sbox_in__5__2,&des_single__8_sbox_in__5__3,&des_single__8_sbox_in__5__4);
  plaintext[33] = XOR(des_single__8_sbox_in__5__1,plaintext[33]);
  plaintext[31] = XOR(des_single__8_sbox_in__5__2,plaintext[31]);
  plaintext[43] = XOR(des_single__8_sbox_in__5__3,plaintext[43]);
  plaintext[45] = XOR(des_single__8_sbox_in__5__4,plaintext[45]);
  des_single__8_sbox_in__6__1 = XOR(key[46],plaintext[4]);
  des_single__8_sbox_in__6__2 = XOR(key[6],plaintext[62]);
  des_single__8_sbox_in__6__3 = XOR(key[19],plaintext[54]);
  des_single__8_sbox_in__6__4 = XOR(key[13],plaintext[46]);
  des_single__8_sbox_in__6__5 = XOR(key[28],plaintext[38]);
  des_single__8_sbox_in__6__6 = XOR(key[37],plaintext[30]);
  sbox__6(des_single__8_sbox_in__6__1,des_single__8_sbox_in__6__2,des_single__8_sbox_in__6__3,des_single__8_sbox_in__6__4,des_single__8_sbox_in__6__5,des_single__8_sbox_in__6__6,&des_single__8_sbox_in__6__1,&des_single__8_sbox_in__6__2,&des_single__8_sbox_in__6__3,&des_single__8_sbox_in__6__4);
  plaintext[7] = XOR(des_single__8_sbox_in__6__1,plaintext[7]);
  plaintext[35] = XOR(des_single__8_sbox_in__6__2,plaintext[35]);
  plaintext[21] = XOR(des_single__8_sbox_in__6__3,plaintext[21]);
  plaintext[9] = XOR(des_single__8_sbox_in__6__4,plaintext[9]);
  des_single__8_sbox_in__7__1 = XOR(key[30],plaintext[38]);
  des_single__8_sbox_in__7__2 = XOR(key[62],plaintext[30]);
  des_single__8_sbox_in__7__3 = XOR(key[61],plaintext[22]);
  des_single__8_sbox_in__7__4 = XOR(key[12],plaintext[14]);
  des_single__8_sbox_in__7__5 = XOR(key[5],plaintext[6]);
  des_single__8_sbox_in__7__6 = XOR(key[44],plaintext[56]);
  sbox__7(des_single__8_sbox_in__7__1,des_single__8_sbox_in__7__2,des_single__8_sbox_in__7__3,des_single__8_sbox_in__7__4,des_single__8_sbox_in__7__5,des_single__8_sbox_in__7__6,&des_single__8_sbox_in__7__1,&des_single__8_sbox_in__7__2,&des_single__8_sbox_in__7__3,&des_single__8_sbox_in__7__4);
  plaintext[25] = XOR(des_single__8_sbox_in__7__1,plaintext[25]);
  plaintext[47] = XOR(des_single__8_sbox_in__7__2,plaintext[47]);
  plaintext[11] = XOR(des_single__8_sbox_in__7__3,plaintext[11]);
  plaintext[29] = XOR(des_single__8_sbox_in__7__4,plaintext[29]);
  des_single__9_sbox_in__0__1 = XOR(key[40],plaintext[7]);
  des_single__9_sbox_in__0__2 = XOR(key[16],plaintext[57]);
  des_single__9_sbox_in__0__3 = XOR(key[35],plaintext[49]);
  des_single__9_sbox_in__0__4 = XOR(key[25],plaintext[41]);
  des_single__9_sbox_in__0__5 = XOR(key[50],plaintext[33]);
  des_single__9_sbox_in__0__6 = XOR(key[18],plaintext[25]);
  sbox__0(des_single__9_sbox_in__0__1,des_single__9_sbox_in__0__2,des_single__9_sbox_in__0__3,des_single__9_sbox_in__0__4,des_single__9_sbox_in__0__5,des_single__9_sbox_in__0__6,&des_single__9_sbox_in__0__1,&des_single__9_sbox_in__0__2,&des_single__9_sbox_in__0__3,&des_single__9_sbox_in__0__4);
  plaintext[58] = XOR(des_single__9_sbox_in__0__1,plaintext[58]);
  plaintext[60] = XOR(des_single__9_sbox_in__0__2,plaintext[60]);
  plaintext[12] = XOR(des_single__9_sbox_in__0__3,plaintext[12]);
  plaintext[14] = XOR(des_single__9_sbox_in__0__4,plaintext[14]);
  des_single__9_sbox_in__1__1 = XOR(key[34],plaintext[33]);
  des_single__9_sbox_in__1__2 = XOR(key[58],plaintext[25]);
  des_single__9_sbox_in__1__3 = XOR(key[32],plaintext[17]);
  des_single__9_sbox_in__1__4 = XOR(key[10],plaintext[9]);
  des_single__9_sbox_in__1__5 = XOR(key[49],plaintext[1]);
  des_single__9_sbox_in__1__6 = XOR(key[43],plaintext[59]);
  sbox__1(des_single__9_sbox_in__1__1,des_single__9_sbox_in__1__2,des_single__9_sbox_in__1__3,des_single__9_sbox_in__1__4,des_single__9_sbox_in__1__5,des_single__9_sbox_in__1__6,&des_single__9_sbox_in__1__1,&des_single__9_sbox_in__1__2,&des_single__9_sbox_in__1__3,&des_single__9_sbox_in__1__4);
  plaintext[26] = XOR(des_single__9_sbox_in__1__1,plaintext[26]);
  plaintext[38] = XOR(des_single__9_sbox_in__1__2,plaintext[38]);
  plaintext[48] = XOR(des_single__9_sbox_in__1__3,plaintext[48]);
  plaintext[52] = XOR(des_single__9_sbox_in__1__4,plaintext[52]);
  des_single__9_sbox_in__2__1 = XOR(key[33],plaintext[1]);
  des_single__9_sbox_in__2__2 = XOR(key[0],plaintext[59]);
  des_single__9_sbox_in__2__3 = XOR(key[56],plaintext[51]);
  des_single__9_sbox_in__2__4 = XOR(key[26],plaintext[43]);
  des_single__9_sbox_in__2__5 = XOR(key[9],plaintext[35]);
  des_single__9_sbox_in__2__6 = XOR(key[59],plaintext[27]);
  sbox__2(des_single__9_sbox_in__2__1,des_single__9_sbox_in__2__2,des_single__9_sbox_in__2__3,des_single__9_sbox_in__2__4,des_single__9_sbox_in__2__5,des_single__9_sbox_in__2__6,&des_single__9_sbox_in__2__1,&des_single__9_sbox_in__2__2,&des_single__9_sbox_in__2__3,&des_single__9_sbox_in__2__4);
  plaintext[4] = XOR(des_single__9_sbox_in__2__1,plaintext[4]);
  plaintext[2] = XOR(des_single__9_sbox_in__2__2,plaintext[2]);
  plaintext[22] = XOR(des_single__9_sbox_in__2__3,plaintext[22]);
  plaintext[16] = XOR(des_single__9_sbox_in__2__4,plaintext[16]);
  des_single__9_sbox_in__3__1 = XOR(key[24],plaintext[35]);
  des_single__9_sbox_in__3__2 = XOR(key[2],plaintext[27]);
  des_single__9_sbox_in__3__3 = XOR(key[1],plaintext[19]);
  des_single__9_sbox_in__3__4 = XOR(key[57],plaintext[11]);
  des_single__9_sbox_in__3__5 = XOR(key[48],plaintext[3]);
  des_single__9_sbox_in__3__6 = XOR(key[42],plaintext[61]);
  sbox__3(des_single__9_sbox_in__3__1,des_single__9_sbox_in__3__2,des_single__9_sbox_in__3__3,des_single__9_sbox_in__3__4,des_single__9_sbox_in__3__5,des_single__9_sbox_in__3__6,&des_single__9_sbox_in__3__1,&des_single__9_sbox_in__3__2,&des_single__9_sbox_in__3__3,&des_single__9_sbox_in__3__4);
  plaintext[54] = XOR(des_single__9_sbox_in__3__1,plaintext[54]);
  plaintext[36] = XOR(des_single__9_sbox_in__3__2,plaintext[36]);
  plaintext[50] = XOR(des_single__9_sbox_in__3__3,plaintext[50]);
  plaintext[56] = XOR(des_single__9_sbox_in__3__4,plaintext[56]);
  des_single__9_sbox_in__4__1 = XOR(key[54],plaintext[3]);
  des_single__9_sbox_in__4__2 = XOR(key[29],plaintext[61]);
  des_single__9_sbox_in__4__3 = XOR(key[36],plaintext[53]);
  des_single__9_sbox_in__4__4 = XOR(key[19],plaintext[45]);
  des_single__9_sbox_in__4__5 = XOR(key[6],plaintext[37]);
  des_single__9_sbox_in__4__6 = XOR(key[5],plaintext[29]);
  sbox__4(des_single__9_sbox_in__4__1,des_single__9_sbox_in__4__2,des_single__9_sbox_in__4__3,des_single__9_sbox_in__4__4,des_single__9_sbox_in__4__5,des_single__9_sbox_in__4__6,&des_single__9_sbox_in__4__1,&des_single__9_sbox_in__4__2,&des_single__9_sbox_in__4__3,&des_single__9_sbox_in__4__4);
  plaintext[0] = XOR(des_single__9_sbox_in__4__1,plaintext[0]);
  plaintext[18] = XOR(des_single__9_sbox_in__4__2,plaintext[18]);
  plaintext[62] = XOR(des_single__9_sbox_in__4__3,plaintext[62]);
  plaintext[40] = XOR(des_single__9_sbox_in__4__4,plaintext[40]);
  des_single__9_sbox_in__5__1 = XOR(key[44],plaintext[37]);
  des_single__9_sbox_in__5__2 = XOR(key[62],plaintext[29]);
  des_single__9_sbox_in__5__3 = XOR(key[37],plaintext[21]);
  des_single__9_sbox_in__5__4 = XOR(key[22],plaintext[13]);
  des_single__9_sbox_in__5__5 = XOR(key[20],plaintext[5]);
  des_single__9_sbox_in__5__6 = XOR(key[61],plaintext[63]);
  sbox__5(des_single__9_sbox_in__5__1,des_single__9_sbox_in__5__2,des_single__9_sbox_in__5__3,des_single__9_sbox_in__5__4,des_single__9_sbox_in__5__5,des_single__9_sbox_in__5__6,&des_single__9_sbox_in__5__1,&des_single__9_sbox_in__5__2,&des_single__9_sbox_in__5__3,&des_single__9_sbox_in__5__4);
  plaintext[32] = XOR(des_single__9_sbox_in__5__1,plaintext[32]);
  plaintext[30] = XOR(des_single__9_sbox_in__5__2,plaintext[30]);
  plaintext[42] = XOR(des_single__9_sbox_in__5__3,plaintext[42]);
  plaintext[44] = XOR(des_single__9_sbox_in__5__4,plaintext[44]);
  des_single__9_sbox_in__6__1 = XOR(key[30],plaintext[5]);
  des_single__9_sbox_in__6__2 = XOR(key[53],plaintext[63]);
  des_single__9_sbox_in__6__3 = XOR(key[3],plaintext[55]);
  des_single__9_sbox_in__6__4 = XOR(key[60],plaintext[47]);
  des_single__9_sbox_in__6__5 = XOR(key[12],plaintext[39]);
  des_single__9_sbox_in__6__6 = XOR(key[21],plaintext[31]);
  sbox__6(des_single__9_sbox_in__6__1,des_single__9_sbox_in__6__2,des_single__9_sbox_in__6__3,des_single__9_sbox_in__6__4,des_single__9_sbox_in__6__5,des_single__9_sbox_in__6__6,&des_single__9_sbox_in__6__1,&des_single__9_sbox_in__6__2,&des_single__9_sbox_in__6__3,&des_single__9_sbox_in__6__4);
  plaintext[6] = XOR(des_single__9_sbox_in__6__1,plaintext[6]);
  plaintext[34] = XOR(des_single__9_sbox_in__6__2,plaintext[34]);
  plaintext[20] = XOR(des_single__9_sbox_in__6__3,plaintext[20]);
  plaintext[8] = XOR(des_single__9_sbox_in__6__4,plaintext[8]);
  des_single__9_sbox_in__7__1 = XOR(key[14],plaintext[39]);
  des_single__9_sbox_in__7__2 = XOR(key[46],plaintext[31]);
  des_single__9_sbox_in__7__3 = XOR(key[45],plaintext[23]);
  des_single__9_sbox_in__7__4 = XOR(key[27],plaintext[15]);
  des_single__9_sbox_in__7__5 = XOR(key[52],plaintext[7]);
  des_single__9_sbox_in__7__6 = XOR(key[28],plaintext[57]);
  sbox__7(des_single__9_sbox_in__7__1,des_single__9_sbox_in__7__2,des_single__9_sbox_in__7__3,des_single__9_sbox_in__7__4,des_single__9_sbox_in__7__5,des_single__9_sbox_in__7__6,&des_single__9_sbox_in__7__1,&des_single__9_sbox_in__7__2,&des_single__9_sbox_in__7__3,&des_single__9_sbox_in__7__4);
  plaintext[24] = XOR(des_single__9_sbox_in__7__1,plaintext[24]);
  plaintext[46] = XOR(des_single__9_sbox_in__7__2,plaintext[46]);
  plaintext[10] = XOR(des_single__9_sbox_in__7__3,plaintext[10]);
  plaintext[28] = XOR(des_single__9_sbox_in__7__4,plaintext[28]);
  des_single__10_sbox_in__0__1 = XOR(key[24],plaintext[6]);
  des_single__10_sbox_in__0__2 = XOR(key[0],plaintext[56]);
  des_single__10_sbox_in__0__3 = XOR(key[48],plaintext[48]);
  des_single__10_sbox_in__0__4 = XOR(key[9],plaintext[40]);
  des_single__10_sbox_in__0__5 = XOR(key[34],plaintext[32]);
  des_single__10_sbox_in__0__6 = XOR(key[2],plaintext[24]);
  sbox__0(des_single__10_sbox_in__0__1,des_single__10_sbox_in__0__2,des_single__10_sbox_in__0__3,des_single__10_sbox_in__0__4,des_single__10_sbox_in__0__5,des_single__10_sbox_in__0__6,&des_single__10_sbox_in__0__1,&des_single__10_sbox_in__0__2,&des_single__10_sbox_in__0__3,&des_single__10_sbox_in__0__4);
  plaintext[59] = XOR(des_single__10_sbox_in__0__1,plaintext[59]);
  plaintext[61] = XOR(des_single__10_sbox_in__0__2,plaintext[61]);
  plaintext[13] = XOR(des_single__10_sbox_in__0__3,plaintext[13]);
  plaintext[15] = XOR(des_single__10_sbox_in__0__4,plaintext[15]);
  des_single__10_sbox_in__1__1 = XOR(key[18],plaintext[32]);
  des_single__10_sbox_in__1__2 = XOR(key[42],plaintext[24]);
  des_single__10_sbox_in__1__3 = XOR(key[16],plaintext[16]);
  des_single__10_sbox_in__1__4 = XOR(key[59],plaintext[8]);
  des_single__10_sbox_in__1__5 = XOR(key[33],plaintext[0]);
  des_single__10_sbox_in__1__6 = XOR(key[56],plaintext[58]);
  sbox__1(des_single__10_sbox_in__1__1,des_single__10_sbox_in__1__2,des_single__10_sbox_in__1__3,des_single__10_sbox_in__1__4,des_single__10_sbox_in__1__5,des_single__10_sbox_in__1__6,&des_single__10_sbox_in__1__1,&des_single__10_sbox_in__1__2,&des_single__10_sbox_in__1__3,&des_single__10_sbox_in__1__4);
  plaintext[27] = XOR(des_single__10_sbox_in__1__1,plaintext[27]);
  plaintext[39] = XOR(des_single__10_sbox_in__1__2,plaintext[39]);
  plaintext[49] = XOR(des_single__10_sbox_in__1__3,plaintext[49]);
  plaintext[53] = XOR(des_single__10_sbox_in__1__4,plaintext[53]);
  des_single__10_sbox_in__2__1 = XOR(key[17],plaintext[0]);
  des_single__10_sbox_in__2__2 = XOR(key[49],plaintext[58]);
  des_single__10_sbox_in__2__3 = XOR(key[40],plaintext[50]);
  des_single__10_sbox_in__2__4 = XOR(key[10],plaintext[42]);
  des_single__10_sbox_in__2__5 = XOR(key[58],plaintext[34]);
  des_single__10_sbox_in__2__6 = XOR(key[43],plaintext[26]);
  sbox__2(des_single__10_sbox_in__2__1,des_single__10_sbox_in__2__2,des_single__10_sbox_in__2__3,des_single__10_sbox_in__2__4,des_single__10_sbox_in__2__5,des_single__10_sbox_in__2__6,&des_single__10_sbox_in__2__1,&des_single__10_sbox_in__2__2,&des_single__10_sbox_in__2__3,&des_single__10_sbox_in__2__4);
  plaintext[5] = XOR(des_single__10_sbox_in__2__1,plaintext[5]);
  plaintext[3] = XOR(des_single__10_sbox_in__2__2,plaintext[3]);
  plaintext[23] = XOR(des_single__10_sbox_in__2__3,plaintext[23]);
  plaintext[17] = XOR(des_single__10_sbox_in__2__4,plaintext[17]);
  des_single__10_sbox_in__3__1 = XOR(key[8],plaintext[34]);
  des_single__10_sbox_in__3__2 = XOR(key[51],plaintext[26]);
  des_single__10_sbox_in__3__3 = XOR(key[50],plaintext[18]);
  des_single__10_sbox_in__3__4 = XOR(key[41],plaintext[10]);
  des_single__10_sbox_in__3__5 = XOR(key[32],plaintext[2]);
  des_single__10_sbox_in__3__6 = XOR(key[26],plaintext[60]);
  sbox__3(des_single__10_sbox_in__3__1,des_single__10_sbox_in__3__2,des_single__10_sbox_in__3__3,des_single__10_sbox_in__3__4,des_single__10_sbox_in__3__5,des_single__10_sbox_in__3__6,&des_single__10_sbox_in__3__1,&des_single__10_sbox_in__3__2,&des_single__10_sbox_in__3__3,&des_single__10_sbox_in__3__4);
  plaintext[55] = XOR(des_single__10_sbox_in__3__1,plaintext[55]);
  plaintext[37] = XOR(des_single__10_sbox_in__3__2,plaintext[37]);
  plaintext[51] = XOR(des_single__10_sbox_in__3__3,plaintext[51]);
  plaintext[57] = XOR(des_single__10_sbox_in__3__4,plaintext[57]);
  des_single__10_sbox_in__4__1 = XOR(key[38],plaintext[2]);
  des_single__10_sbox_in__4__2 = XOR(key[13],plaintext[60]);
  des_single__10_sbox_in__4__3 = XOR(key[20],plaintext[52]);
  des_single__10_sbox_in__4__4 = XOR(key[3],plaintext[44]);
  des_single__10_sbox_in__4__5 = XOR(key[53],plaintext[36]);
  des_single__10_sbox_in__4__6 = XOR(key[52],plaintext[28]);
  sbox__4(des_single__10_sbox_in__4__1,des_single__10_sbox_in__4__2,des_single__10_sbox_in__4__3,des_single__10_sbox_in__4__4,des_single__10_sbox_in__4__5,des_single__10_sbox_in__4__6,&des_single__10_sbox_in__4__1,&des_single__10_sbox_in__4__2,&des_single__10_sbox_in__4__3,&des_single__10_sbox_in__4__4);
  plaintext[1] = XOR(des_single__10_sbox_in__4__1,plaintext[1]);
  plaintext[19] = XOR(des_single__10_sbox_in__4__2,plaintext[19]);
  plaintext[63] = XOR(des_single__10_sbox_in__4__3,plaintext[63]);
  plaintext[41] = XOR(des_single__10_sbox_in__4__4,plaintext[41]);
  des_single__10_sbox_in__5__1 = XOR(key[28],plaintext[36]);
  des_single__10_sbox_in__5__2 = XOR(key[46],plaintext[28]);
  des_single__10_sbox_in__5__3 = XOR(key[21],plaintext[20]);
  des_single__10_sbox_in__5__4 = XOR(key[6],plaintext[12]);
  des_single__10_sbox_in__5__5 = XOR(key[4],plaintext[4]);
  des_single__10_sbox_in__5__6 = XOR(key[45],plaintext[62]);
  sbox__5(des_single__10_sbox_in__5__1,des_single__10_sbox_in__5__2,des_single__10_sbox_in__5__3,des_single__10_sbox_in__5__4,des_single__10_sbox_in__5__5,des_single__10_sbox_in__5__6,&des_single__10_sbox_in__5__1,&des_single__10_sbox_in__5__2,&des_single__10_sbox_in__5__3,&des_single__10_sbox_in__5__4);
  plaintext[33] = XOR(des_single__10_sbox_in__5__1,plaintext[33]);
  plaintext[31] = XOR(des_single__10_sbox_in__5__2,plaintext[31]);
  plaintext[43] = XOR(des_single__10_sbox_in__5__3,plaintext[43]);
  plaintext[45] = XOR(des_single__10_sbox_in__5__4,plaintext[45]);
  des_single__10_sbox_in__6__1 = XOR(key[14],plaintext[4]);
  des_single__10_sbox_in__6__2 = XOR(key[37],plaintext[62]);
  des_single__10_sbox_in__6__3 = XOR(key[54],plaintext[54]);
  des_single__10_sbox_in__6__4 = XOR(key[44],plaintext[46]);
  des_single__10_sbox_in__6__5 = XOR(key[27],plaintext[38]);
  des_single__10_sbox_in__6__6 = XOR(key[5],plaintext[30]);
  sbox__6(des_single__10_sbox_in__6__1,des_single__10_sbox_in__6__2,des_single__10_sbox_in__6__3,des_single__10_sbox_in__6__4,des_single__10_sbox_in__6__5,des_single__10_sbox_in__6__6,&des_single__10_sbox_in__6__1,&des_single__10_sbox_in__6__2,&des_single__10_sbox_in__6__3,&des_single__10_sbox_in__6__4);
  plaintext[7] = XOR(des_single__10_sbox_in__6__1,plaintext[7]);
  plaintext[35] = XOR(des_single__10_sbox_in__6__2,plaintext[35]);
  plaintext[21] = XOR(des_single__10_sbox_in__6__3,plaintext[21]);
  plaintext[9] = XOR(des_single__10_sbox_in__6__4,plaintext[9]);
  des_single__10_sbox_in__7__1 = XOR(key[61],plaintext[38]);
  des_single__10_sbox_in__7__2 = XOR(key[30],plaintext[30]);
  des_single__10_sbox_in__7__3 = XOR(key[29],plaintext[22]);
  des_single__10_sbox_in__7__4 = XOR(key[11],plaintext[14]);
  des_single__10_sbox_in__7__5 = XOR(key[36],plaintext[6]);
  des_single__10_sbox_in__7__6 = XOR(key[12],plaintext[56]);
  sbox__7(des_single__10_sbox_in__7__1,des_single__10_sbox_in__7__2,des_single__10_sbox_in__7__3,des_single__10_sbox_in__7__4,des_single__10_sbox_in__7__5,des_single__10_sbox_in__7__6,&des_single__10_sbox_in__7__1,&des_single__10_sbox_in__7__2,&des_single__10_sbox_in__7__3,&des_single__10_sbox_in__7__4);
  plaintext[25] = XOR(des_single__10_sbox_in__7__1,plaintext[25]);
  plaintext[47] = XOR(des_single__10_sbox_in__7__2,plaintext[47]);
  plaintext[11] = XOR(des_single__10_sbox_in__7__3,plaintext[11]);
  plaintext[29] = XOR(des_single__10_sbox_in__7__4,plaintext[29]);
  des_single__11_sbox_in__0__1 = XOR(key[8],plaintext[7]);
  des_single__11_sbox_in__0__2 = XOR(key[49],plaintext[57]);
  des_single__11_sbox_in__0__3 = XOR(key[32],plaintext[49]);
  des_single__11_sbox_in__0__4 = XOR(key[58],plaintext[41]);
  des_single__11_sbox_in__0__5 = XOR(key[18],plaintext[33]);
  des_single__11_sbox_in__0__6 = XOR(key[51],plaintext[25]);
  sbox__0(des_single__11_sbox_in__0__1,des_single__11_sbox_in__0__2,des_single__11_sbox_in__0__3,des_single__11_sbox_in__0__4,des_single__11_sbox_in__0__5,des_single__11_sbox_in__0__6,&des_single__11_sbox_in__0__1,&des_single__11_sbox_in__0__2,&des_single__11_sbox_in__0__3,&des_single__11_sbox_in__0__4);
  plaintext[58] = XOR(des_single__11_sbox_in__0__1,plaintext[58]);
  plaintext[60] = XOR(des_single__11_sbox_in__0__2,plaintext[60]);
  plaintext[12] = XOR(des_single__11_sbox_in__0__3,plaintext[12]);
  plaintext[14] = XOR(des_single__11_sbox_in__0__4,plaintext[14]);
  des_single__11_sbox_in__1__1 = XOR(key[2],plaintext[33]);
  des_single__11_sbox_in__1__2 = XOR(key[26],plaintext[25]);
  des_single__11_sbox_in__1__3 = XOR(key[0],plaintext[17]);
  des_single__11_sbox_in__1__4 = XOR(key[43],plaintext[9]);
  des_single__11_sbox_in__1__5 = XOR(key[17],plaintext[1]);
  des_single__11_sbox_in__1__6 = XOR(key[40],plaintext[59]);
  sbox__1(des_single__11_sbox_in__1__1,des_single__11_sbox_in__1__2,des_single__11_sbox_in__1__3,des_single__11_sbox_in__1__4,des_single__11_sbox_in__1__5,des_single__11_sbox_in__1__6,&des_single__11_sbox_in__1__1,&des_single__11_sbox_in__1__2,&des_single__11_sbox_in__1__3,&des_single__11_sbox_in__1__4);
  plaintext[26] = XOR(des_single__11_sbox_in__1__1,plaintext[26]);
  plaintext[38] = XOR(des_single__11_sbox_in__1__2,plaintext[38]);
  plaintext[48] = XOR(des_single__11_sbox_in__1__3,plaintext[48]);
  plaintext[52] = XOR(des_single__11_sbox_in__1__4,plaintext[52]);
  des_single__11_sbox_in__2__1 = XOR(key[1],plaintext[1]);
  des_single__11_sbox_in__2__2 = XOR(key[33],plaintext[59]);
  des_single__11_sbox_in__2__3 = XOR(key[24],plaintext[51]);
  des_single__11_sbox_in__2__4 = XOR(key[59],plaintext[43]);
  des_single__11_sbox_in__2__5 = XOR(key[42],plaintext[35]);
  des_single__11_sbox_in__2__6 = XOR(key[56],plaintext[27]);
  sbox__2(des_single__11_sbox_in__2__1,des_single__11_sbox_in__2__2,des_single__11_sbox_in__2__3,des_single__11_sbox_in__2__4,des_single__11_sbox_in__2__5,des_single__11_sbox_in__2__6,&des_single__11_sbox_in__2__1,&des_single__11_sbox_in__2__2,&des_single__11_sbox_in__2__3,&des_single__11_sbox_in__2__4);
  plaintext[4] = XOR(des_single__11_sbox_in__2__1,plaintext[4]);
  plaintext[2] = XOR(des_single__11_sbox_in__2__2,plaintext[2]);
  plaintext[22] = XOR(des_single__11_sbox_in__2__3,plaintext[22]);
  plaintext[16] = XOR(des_single__11_sbox_in__2__4,plaintext[16]);
  des_single__11_sbox_in__3__1 = XOR(key[57],plaintext[35]);
  des_single__11_sbox_in__3__2 = XOR(key[35],plaintext[27]);
  des_single__11_sbox_in__3__3 = XOR(key[34],plaintext[19]);
  des_single__11_sbox_in__3__4 = XOR(key[25],plaintext[11]);
  des_single__11_sbox_in__3__5 = XOR(key[16],plaintext[3]);
  des_single__11_sbox_in__3__6 = XOR(key[10],plaintext[61]);
  sbox__3(des_single__11_sbox_in__3__1,des_single__11_sbox_in__3__2,des_single__11_sbox_in__3__3,des_single__11_sbox_in__3__4,des_single__11_sbox_in__3__5,des_single__11_sbox_in__3__6,&des_single__11_sbox_in__3__1,&des_single__11_sbox_in__3__2,&des_single__11_sbox_in__3__3,&des_single__11_sbox_in__3__4);
  plaintext[54] = XOR(des_single__11_sbox_in__3__1,plaintext[54]);
  plaintext[36] = XOR(des_single__11_sbox_in__3__2,plaintext[36]);
  plaintext[50] = XOR(des_single__11_sbox_in__3__3,plaintext[50]);
  plaintext[56] = XOR(des_single__11_sbox_in__3__4,plaintext[56]);
  des_single__11_sbox_in__4__1 = XOR(key[22],plaintext[3]);
  des_single__11_sbox_in__4__2 = XOR(key[60],plaintext[61]);
  des_single__11_sbox_in__4__3 = XOR(key[4],plaintext[53]);
  des_single__11_sbox_in__4__4 = XOR(key[54],plaintext[45]);
  des_single__11_sbox_in__4__5 = XOR(key[37],plaintext[37]);
  des_single__11_sbox_in__4__6 = XOR(key[36],plaintext[29]);
  sbox__4(des_single__11_sbox_in__4__1,des_single__11_sbox_in__4__2,des_single__11_sbox_in__4__3,des_single__11_sbox_in__4__4,des_single__11_sbox_in__4__5,des_single__11_sbox_in__4__6,&des_single__11_sbox_in__4__1,&des_single__11_sbox_in__4__2,&des_single__11_sbox_in__4__3,&des_single__11_sbox_in__4__4);
  plaintext[0] = XOR(des_single__11_sbox_in__4__1,plaintext[0]);
  plaintext[18] = XOR(des_single__11_sbox_in__4__2,plaintext[18]);
  plaintext[62] = XOR(des_single__11_sbox_in__4__3,plaintext[62]);
  plaintext[40] = XOR(des_single__11_sbox_in__4__4,plaintext[40]);
  des_single__11_sbox_in__5__1 = XOR(key[12],plaintext[37]);
  des_single__11_sbox_in__5__2 = XOR(key[30],plaintext[29]);
  des_single__11_sbox_in__5__3 = XOR(key[5],plaintext[21]);
  des_single__11_sbox_in__5__4 = XOR(key[53],plaintext[13]);
  des_single__11_sbox_in__5__5 = XOR(key[19],plaintext[5]);
  des_single__11_sbox_in__5__6 = XOR(key[29],plaintext[63]);
  sbox__5(des_single__11_sbox_in__5__1,des_single__11_sbox_in__5__2,des_single__11_sbox_in__5__3,des_single__11_sbox_in__5__4,des_single__11_sbox_in__5__5,des_single__11_sbox_in__5__6,&des_single__11_sbox_in__5__1,&des_single__11_sbox_in__5__2,&des_single__11_sbox_in__5__3,&des_single__11_sbox_in__5__4);
  plaintext[32] = XOR(des_single__11_sbox_in__5__1,plaintext[32]);
  plaintext[30] = XOR(des_single__11_sbox_in__5__2,plaintext[30]);
  plaintext[42] = XOR(des_single__11_sbox_in__5__3,plaintext[42]);
  plaintext[44] = XOR(des_single__11_sbox_in__5__4,plaintext[44]);
  des_single__11_sbox_in__6__1 = XOR(key[61],plaintext[5]);
  des_single__11_sbox_in__6__2 = XOR(key[21],plaintext[63]);
  des_single__11_sbox_in__6__3 = XOR(key[38],plaintext[55]);
  des_single__11_sbox_in__6__4 = XOR(key[28],plaintext[47]);
  des_single__11_sbox_in__6__5 = XOR(key[11],plaintext[39]);
  des_single__11_sbox_in__6__6 = XOR(key[52],plaintext[31]);
  sbox__6(des_single__11_sbox_in__6__1,des_single__11_sbox_in__6__2,des_single__11_sbox_in__6__3,des_single__11_sbox_in__6__4,des_single__11_sbox_in__6__5,des_single__11_sbox_in__6__6,&des_single__11_sbox_in__6__1,&des_single__11_sbox_in__6__2,&des_single__11_sbox_in__6__3,&des_single__11_sbox_in__6__4);
  plaintext[6] = XOR(des_single__11_sbox_in__6__1,plaintext[6]);
  plaintext[34] = XOR(des_single__11_sbox_in__6__2,plaintext[34]);
  plaintext[20] = XOR(des_single__11_sbox_in__6__3,plaintext[20]);
  plaintext[8] = XOR(des_single__11_sbox_in__6__4,plaintext[8]);
  des_single__11_sbox_in__7__1 = XOR(key[45],plaintext[39]);
  des_single__11_sbox_in__7__2 = XOR(key[14],plaintext[31]);
  des_single__11_sbox_in__7__3 = XOR(key[13],plaintext[23]);
  des_single__11_sbox_in__7__4 = XOR(key[62],plaintext[15]);
  des_single__11_sbox_in__7__5 = XOR(key[20],plaintext[7]);
  des_single__11_sbox_in__7__6 = XOR(key[27],plaintext[57]);
  sbox__7(des_single__11_sbox_in__7__1,des_single__11_sbox_in__7__2,des_single__11_sbox_in__7__3,des_single__11_sbox_in__7__4,des_single__11_sbox_in__7__5,des_single__11_sbox_in__7__6,&des_single__11_sbox_in__7__1,&des_single__11_sbox_in__7__2,&des_single__11_sbox_in__7__3,&des_single__11_sbox_in__7__4);
  plaintext[24] = XOR(des_single__11_sbox_in__7__1,plaintext[24]);
  plaintext[46] = XOR(des_single__11_sbox_in__7__2,plaintext[46]);
  plaintext[10] = XOR(des_single__11_sbox_in__7__3,plaintext[10]);
  plaintext[28] = XOR(des_single__11_sbox_in__7__4,plaintext[28]);
  des_single__12_sbox_in__0__1 = XOR(key[57],plaintext[6]);
  des_single__12_sbox_in__0__2 = XOR(key[33],plaintext[56]);
  des_single__12_sbox_in__0__3 = XOR(key[16],plaintext[48]);
  des_single__12_sbox_in__0__4 = XOR(key[42],plaintext[40]);
  des_single__12_sbox_in__0__5 = XOR(key[2],plaintext[32]);
  des_single__12_sbox_in__0__6 = XOR(key[35],plaintext[24]);
  sbox__0(des_single__12_sbox_in__0__1,des_single__12_sbox_in__0__2,des_single__12_sbox_in__0__3,des_single__12_sbox_in__0__4,des_single__12_sbox_in__0__5,des_single__12_sbox_in__0__6,&des_single__12_sbox_in__0__1,&des_single__12_sbox_in__0__2,&des_single__12_sbox_in__0__3,&des_single__12_sbox_in__0__4);
  plaintext[59] = XOR(des_single__12_sbox_in__0__1,plaintext[59]);
  plaintext[61] = XOR(des_single__12_sbox_in__0__2,plaintext[61]);
  plaintext[13] = XOR(des_single__12_sbox_in__0__3,plaintext[13]);
  plaintext[15] = XOR(des_single__12_sbox_in__0__4,plaintext[15]);
  des_single__12_sbox_in__1__1 = XOR(key[51],plaintext[32]);
  des_single__12_sbox_in__1__2 = XOR(key[10],plaintext[24]);
  des_single__12_sbox_in__1__3 = XOR(key[49],plaintext[16]);
  des_single__12_sbox_in__1__4 = XOR(key[56],plaintext[8]);
  des_single__12_sbox_in__1__5 = XOR(key[1],plaintext[0]);
  des_single__12_sbox_in__1__6 = XOR(key[24],plaintext[58]);
  sbox__1(des_single__12_sbox_in__1__1,des_single__12_sbox_in__1__2,des_single__12_sbox_in__1__3,des_single__12_sbox_in__1__4,des_single__12_sbox_in__1__5,des_single__12_sbox_in__1__6,&des_single__12_sbox_in__1__1,&des_single__12_sbox_in__1__2,&des_single__12_sbox_in__1__3,&des_single__12_sbox_in__1__4);
  plaintext[27] = XOR(des_single__12_sbox_in__1__1,plaintext[27]);
  plaintext[39] = XOR(des_single__12_sbox_in__1__2,plaintext[39]);
  plaintext[49] = XOR(des_single__12_sbox_in__1__3,plaintext[49]);
  plaintext[53] = XOR(des_single__12_sbox_in__1__4,plaintext[53]);
  des_single__12_sbox_in__2__1 = XOR(key[50],plaintext[0]);
  des_single__12_sbox_in__2__2 = XOR(key[17],plaintext[58]);
  des_single__12_sbox_in__2__3 = XOR(key[8],plaintext[50]);
  des_single__12_sbox_in__2__4 = XOR(key[43],plaintext[42]);
  des_single__12_sbox_in__2__5 = XOR(key[26],plaintext[34]);
  des_single__12_sbox_in__2__6 = XOR(key[40],plaintext[26]);
  sbox__2(des_single__12_sbox_in__2__1,des_single__12_sbox_in__2__2,des_single__12_sbox_in__2__3,des_single__12_sbox_in__2__4,des_single__12_sbox_in__2__5,des_single__12_sbox_in__2__6,&des_single__12_sbox_in__2__1,&des_single__12_sbox_in__2__2,&des_single__12_sbox_in__2__3,&des_single__12_sbox_in__2__4);
  plaintext[5] = XOR(des_single__12_sbox_in__2__1,plaintext[5]);
  plaintext[3] = XOR(des_single__12_sbox_in__2__2,plaintext[3]);
  plaintext[23] = XOR(des_single__12_sbox_in__2__3,plaintext[23]);
  plaintext[17] = XOR(des_single__12_sbox_in__2__4,plaintext[17]);
  des_single__12_sbox_in__3__1 = XOR(key[41],plaintext[34]);
  des_single__12_sbox_in__3__2 = XOR(key[48],plaintext[26]);
  des_single__12_sbox_in__3__3 = XOR(key[18],plaintext[18]);
  des_single__12_sbox_in__3__4 = XOR(key[9],plaintext[10]);
  des_single__12_sbox_in__3__5 = XOR(key[0],plaintext[2]);
  des_single__12_sbox_in__3__6 = XOR(key[59],plaintext[60]);
  sbox__3(des_single__12_sbox_in__3__1,des_single__12_sbox_in__3__2,des_single__12_sbox_in__3__3,des_single__12_sbox_in__3__4,des_single__12_sbox_in__3__5,des_single__12_sbox_in__3__6,&des_single__12_sbox_in__3__1,&des_single__12_sbox_in__3__2,&des_single__12_sbox_in__3__3,&des_single__12_sbox_in__3__4);
  plaintext[55] = XOR(des_single__12_sbox_in__3__1,plaintext[55]);
  plaintext[37] = XOR(des_single__12_sbox_in__3__2,plaintext[37]);
  plaintext[51] = XOR(des_single__12_sbox_in__3__3,plaintext[51]);
  plaintext[57] = XOR(des_single__12_sbox_in__3__4,plaintext[57]);
  des_single__12_sbox_in__4__1 = XOR(key[6],plaintext[2]);
  des_single__12_sbox_in__4__2 = XOR(key[44],plaintext[60]);
  des_single__12_sbox_in__4__3 = XOR(key[19],plaintext[52]);
  des_single__12_sbox_in__4__4 = XOR(key[38],plaintext[44]);
  des_single__12_sbox_in__4__5 = XOR(key[21],plaintext[36]);
  des_single__12_sbox_in__4__6 = XOR(key[20],plaintext[28]);
  sbox__4(des_single__12_sbox_in__4__1,des_single__12_sbox_in__4__2,des_single__12_sbox_in__4__3,des_single__12_sbox_in__4__4,des_single__12_sbox_in__4__5,des_single__12_sbox_in__4__6,&des_single__12_sbox_in__4__1,&des_single__12_sbox_in__4__2,&des_single__12_sbox_in__4__3,&des_single__12_sbox_in__4__4);
  plaintext[1] = XOR(des_single__12_sbox_in__4__1,plaintext[1]);
  plaintext[19] = XOR(des_single__12_sbox_in__4__2,plaintext[19]);
  plaintext[63] = XOR(des_single__12_sbox_in__4__3,plaintext[63]);
  plaintext[41] = XOR(des_single__12_sbox_in__4__4,plaintext[41]);
  des_single__12_sbox_in__5__1 = XOR(key[27],plaintext[36]);
  des_single__12_sbox_in__5__2 = XOR(key[14],plaintext[28]);
  des_single__12_sbox_in__5__3 = XOR(key[52],plaintext[20]);
  des_single__12_sbox_in__5__4 = XOR(key[37],plaintext[12]);
  des_single__12_sbox_in__5__5 = XOR(key[3],plaintext[4]);
  des_single__12_sbox_in__5__6 = XOR(key[13],plaintext[62]);
  sbox__5(des_single__12_sbox_in__5__1,des_single__12_sbox_in__5__2,des_single__12_sbox_in__5__3,des_single__12_sbox_in__5__4,des_single__12_sbox_in__5__5,des_single__12_sbox_in__5__6,&des_single__12_sbox_in__5__1,&des_single__12_sbox_in__5__2,&des_single__12_sbox_in__5__3,&des_single__12_sbox_in__5__4);
  plaintext[33] = XOR(des_single__12_sbox_in__5__1,plaintext[33]);
  plaintext[31] = XOR(des_single__12_sbox_in__5__2,plaintext[31]);
  plaintext[43] = XOR(des_single__12_sbox_in__5__3,plaintext[43]);
  plaintext[45] = XOR(des_single__12_sbox_in__5__4,plaintext[45]);
  des_single__12_sbox_in__6__1 = XOR(key[45],plaintext[4]);
  des_single__12_sbox_in__6__2 = XOR(key[5],plaintext[62]);
  des_single__12_sbox_in__6__3 = XOR(key[22],plaintext[54]);
  des_single__12_sbox_in__6__4 = XOR(key[12],plaintext[46]);
  des_single__12_sbox_in__6__5 = XOR(key[62],plaintext[38]);
  des_single__12_sbox_in__6__6 = XOR(key[36],plaintext[30]);
  sbox__6(des_single__12_sbox_in__6__1,des_single__12_sbox_in__6__2,des_single__12_sbox_in__6__3,des_single__12_sbox_in__6__4,des_single__12_sbox_in__6__5,des_single__12_sbox_in__6__6,&des_single__12_sbox_in__6__1,&des_single__12_sbox_in__6__2,&des_single__12_sbox_in__6__3,&des_single__12_sbox_in__6__4);
  plaintext[7] = XOR(des_single__12_sbox_in__6__1,plaintext[7]);
  plaintext[35] = XOR(des_single__12_sbox_in__6__2,plaintext[35]);
  plaintext[21] = XOR(des_single__12_sbox_in__6__3,plaintext[21]);
  plaintext[9] = XOR(des_single__12_sbox_in__6__4,plaintext[9]);
  des_single__12_sbox_in__7__1 = XOR(key[29],plaintext[38]);
  des_single__12_sbox_in__7__2 = XOR(key[61],plaintext[30]);
  des_single__12_sbox_in__7__3 = XOR(key[60],plaintext[22]);
  des_single__12_sbox_in__7__4 = XOR(key[46],plaintext[14]);
  des_single__12_sbox_in__7__5 = XOR(key[4],plaintext[6]);
  des_single__12_sbox_in__7__6 = XOR(key[11],plaintext[56]);
  sbox__7(des_single__12_sbox_in__7__1,des_single__12_sbox_in__7__2,des_single__12_sbox_in__7__3,des_single__12_sbox_in__7__4,des_single__12_sbox_in__7__5,des_single__12_sbox_in__7__6,&des_single__12_sbox_in__7__1,&des_single__12_sbox_in__7__2,&des_single__12_sbox_in__7__3,&des_single__12_sbox_in__7__4);
  plaintext[25] = XOR(des_single__12_sbox_in__7__1,plaintext[25]);
  plaintext[47] = XOR(des_single__12_sbox_in__7__2,plaintext[47]);
  plaintext[11] = XOR(des_single__12_sbox_in__7__3,plaintext[11]);
  plaintext[29] = XOR(des_single__12_sbox_in__7__4,plaintext[29]);
  des_single__13_sbox_in__0__1 = XOR(key[41],plaintext[7]);
  des_single__13_sbox_in__0__2 = XOR(key[17],plaintext[57]);
  des_single__13_sbox_in__0__3 = XOR(key[0],plaintext[49]);
  des_single__13_sbox_in__0__4 = XOR(key[26],plaintext[41]);
  des_single__13_sbox_in__0__5 = XOR(key[51],plaintext[33]);
  des_single__13_sbox_in__0__6 = XOR(key[48],plaintext[25]);
  sbox__0(des_single__13_sbox_in__0__1,des_single__13_sbox_in__0__2,des_single__13_sbox_in__0__3,des_single__13_sbox_in__0__4,des_single__13_sbox_in__0__5,des_single__13_sbox_in__0__6,&des_single__13_sbox_in__0__1,&des_single__13_sbox_in__0__2,&des_single__13_sbox_in__0__3,&des_single__13_sbox_in__0__4);
  plaintext[58] = XOR(des_single__13_sbox_in__0__1,plaintext[58]);
  plaintext[60] = XOR(des_single__13_sbox_in__0__2,plaintext[60]);
  plaintext[12] = XOR(des_single__13_sbox_in__0__3,plaintext[12]);
  plaintext[14] = XOR(des_single__13_sbox_in__0__4,plaintext[14]);
  des_single__13_sbox_in__1__1 = XOR(key[35],plaintext[33]);
  des_single__13_sbox_in__1__2 = XOR(key[59],plaintext[25]);
  des_single__13_sbox_in__1__3 = XOR(key[33],plaintext[17]);
  des_single__13_sbox_in__1__4 = XOR(key[40],plaintext[9]);
  des_single__13_sbox_in__1__5 = XOR(key[50],plaintext[1]);
  des_single__13_sbox_in__1__6 = XOR(key[8],plaintext[59]);
  sbox__1(des_single__13_sbox_in__1__1,des_single__13_sbox_in__1__2,des_single__13_sbox_in__1__3,des_single__13_sbox_in__1__4,des_single__13_sbox_in__1__5,des_single__13_sbox_in__1__6,&des_single__13_sbox_in__1__1,&des_single__13_sbox_in__1__2,&des_single__13_sbox_in__1__3,&des_single__13_sbox_in__1__4);
  plaintext[26] = XOR(des_single__13_sbox_in__1__1,plaintext[26]);
  plaintext[38] = XOR(des_single__13_sbox_in__1__2,plaintext[38]);
  plaintext[48] = XOR(des_single__13_sbox_in__1__3,plaintext[48]);
  plaintext[52] = XOR(des_single__13_sbox_in__1__4,plaintext[52]);
  des_single__13_sbox_in__2__1 = XOR(key[34],plaintext[1]);
  des_single__13_sbox_in__2__2 = XOR(key[1],plaintext[59]);
  des_single__13_sbox_in__2__3 = XOR(key[57],plaintext[51]);
  des_single__13_sbox_in__2__4 = XOR(key[56],plaintext[43]);
  des_single__13_sbox_in__2__5 = XOR(key[10],plaintext[35]);
  des_single__13_sbox_in__2__6 = XOR(key[24],plaintext[27]);
  sbox__2(des_single__13_sbox_in__2__1,des_single__13_sbox_in__2__2,des_single__13_sbox_in__2__3,des_single__13_sbox_in__2__4,des_single__13_sbox_in__2__5,des_single__13_sbox_in__2__6,&des_single__13_sbox_in__2__1,&des_single__13_sbox_in__2__2,&des_single__13_sbox_in__2__3,&des_single__13_sbox_in__2__4);
  plaintext[4] = XOR(des_single__13_sbox_in__2__1,plaintext[4]);
  plaintext[2] = XOR(des_single__13_sbox_in__2__2,plaintext[2]);
  plaintext[22] = XOR(des_single__13_sbox_in__2__3,plaintext[22]);
  plaintext[16] = XOR(des_single__13_sbox_in__2__4,plaintext[16]);
  des_single__13_sbox_in__3__1 = XOR(key[25],plaintext[35]);
  des_single__13_sbox_in__3__2 = XOR(key[32],plaintext[27]);
  des_single__13_sbox_in__3__3 = XOR(key[2],plaintext[19]);
  des_single__13_sbox_in__3__4 = XOR(key[58],plaintext[11]);
  des_single__13_sbox_in__3__5 = XOR(key[49],plaintext[3]);
  des_single__13_sbox_in__3__6 = XOR(key[43],plaintext[61]);
  sbox__3(des_single__13_sbox_in__3__1,des_single__13_sbox_in__3__2,des_single__13_sbox_in__3__3,des_single__13_sbox_in__3__4,des_single__13_sbox_in__3__5,des_single__13_sbox_in__3__6,&des_single__13_sbox_in__3__1,&des_single__13_sbox_in__3__2,&des_single__13_sbox_in__3__3,&des_single__13_sbox_in__3__4);
  plaintext[54] = XOR(des_single__13_sbox_in__3__1,plaintext[54]);
  plaintext[36] = XOR(des_single__13_sbox_in__3__2,plaintext[36]);
  plaintext[50] = XOR(des_single__13_sbox_in__3__3,plaintext[50]);
  plaintext[56] = XOR(des_single__13_sbox_in__3__4,plaintext[56]);
  des_single__13_sbox_in__4__1 = XOR(key[53],plaintext[3]);
  des_single__13_sbox_in__4__2 = XOR(key[28],plaintext[61]);
  des_single__13_sbox_in__4__3 = XOR(key[3],plaintext[53]);
  des_single__13_sbox_in__4__4 = XOR(key[22],plaintext[45]);
  des_single__13_sbox_in__4__5 = XOR(key[5],plaintext[37]);
  des_single__13_sbox_in__4__6 = XOR(key[4],plaintext[29]);
  sbox__4(des_single__13_sbox_in__4__1,des_single__13_sbox_in__4__2,des_single__13_sbox_in__4__3,des_single__13_sbox_in__4__4,des_single__13_sbox_in__4__5,des_single__13_sbox_in__4__6,&des_single__13_sbox_in__4__1,&des_single__13_sbox_in__4__2,&des_single__13_sbox_in__4__3,&des_single__13_sbox_in__4__4);
  plaintext[0] = XOR(des_single__13_sbox_in__4__1,plaintext[0]);
  plaintext[18] = XOR(des_single__13_sbox_in__4__2,plaintext[18]);
  plaintext[62] = XOR(des_single__13_sbox_in__4__3,plaintext[62]);
  plaintext[40] = XOR(des_single__13_sbox_in__4__4,plaintext[40]);
  des_single__13_sbox_in__5__1 = XOR(key[11],plaintext[37]);
  des_single__13_sbox_in__5__2 = XOR(key[61],plaintext[29]);
  des_single__13_sbox_in__5__3 = XOR(key[36],plaintext[21]);
  des_single__13_sbox_in__5__4 = XOR(key[21],plaintext[13]);
  des_single__13_sbox_in__5__5 = XOR(key[54],plaintext[5]);
  des_single__13_sbox_in__5__6 = XOR(key[60],plaintext[63]);
  sbox__5(des_single__13_sbox_in__5__1,des_single__13_sbox_in__5__2,des_single__13_sbox_in__5__3,des_single__13_sbox_in__5__4,des_single__13_sbox_in__5__5,des_single__13_sbox_in__5__6,&des_single__13_sbox_in__5__1,&des_single__13_sbox_in__5__2,&des_single__13_sbox_in__5__3,&des_single__13_sbox_in__5__4);
  plaintext[32] = XOR(des_single__13_sbox_in__5__1,plaintext[32]);
  plaintext[30] = XOR(des_single__13_sbox_in__5__2,plaintext[30]);
  plaintext[42] = XOR(des_single__13_sbox_in__5__3,plaintext[42]);
  plaintext[44] = XOR(des_single__13_sbox_in__5__4,plaintext[44]);
  des_single__13_sbox_in__6__1 = XOR(key[29],plaintext[5]);
  des_single__13_sbox_in__6__2 = XOR(key[52],plaintext[63]);
  des_single__13_sbox_in__6__3 = XOR(key[6],plaintext[55]);
  des_single__13_sbox_in__6__4 = XOR(key[27],plaintext[47]);
  des_single__13_sbox_in__6__5 = XOR(key[46],plaintext[39]);
  des_single__13_sbox_in__6__6 = XOR(key[20],plaintext[31]);
  sbox__6(des_single__13_sbox_in__6__1,des_single__13_sbox_in__6__2,des_single__13_sbox_in__6__3,des_single__13_sbox_in__6__4,des_single__13_sbox_in__6__5,des_single__13_sbox_in__6__6,&des_single__13_sbox_in__6__1,&des_single__13_sbox_in__6__2,&des_single__13_sbox_in__6__3,&des_single__13_sbox_in__6__4);
  plaintext[6] = XOR(des_single__13_sbox_in__6__1,plaintext[6]);
  plaintext[34] = XOR(des_single__13_sbox_in__6__2,plaintext[34]);
  plaintext[20] = XOR(des_single__13_sbox_in__6__3,plaintext[20]);
  plaintext[8] = XOR(des_single__13_sbox_in__6__4,plaintext[8]);
  des_single__13_sbox_in__7__1 = XOR(key[13],plaintext[39]);
  des_single__13_sbox_in__7__2 = XOR(key[45],plaintext[31]);
  des_single__13_sbox_in__7__3 = XOR(key[44],plaintext[23]);
  des_single__13_sbox_in__7__4 = XOR(key[30],plaintext[15]);
  des_single__13_sbox_in__7__5 = XOR(key[19],plaintext[7]);
  des_single__13_sbox_in__7__6 = XOR(key[62],plaintext[57]);
  sbox__7(des_single__13_sbox_in__7__1,des_single__13_sbox_in__7__2,des_single__13_sbox_in__7__3,des_single__13_sbox_in__7__4,des_single__13_sbox_in__7__5,des_single__13_sbox_in__7__6,&des_single__13_sbox_in__7__1,&des_single__13_sbox_in__7__2,&des_single__13_sbox_in__7__3,&des_single__13_sbox_in__7__4);
  plaintext[24] = XOR(des_single__13_sbox_in__7__1,plaintext[24]);
  plaintext[46] = XOR(des_single__13_sbox_in__7__2,plaintext[46]);
  plaintext[10] = XOR(des_single__13_sbox_in__7__3,plaintext[10]);
  plaintext[28] = XOR(des_single__13_sbox_in__7__4,plaintext[28]);
  des_single__14_sbox_in__0__1 = XOR(key[25],plaintext[6]);
  des_single__14_sbox_in__0__2 = XOR(key[1],plaintext[56]);
  des_single__14_sbox_in__0__3 = XOR(key[49],plaintext[48]);
  des_single__14_sbox_in__0__4 = XOR(key[10],plaintext[40]);
  des_single__14_sbox_in__0__5 = XOR(key[35],plaintext[32]);
  des_single__14_sbox_in__0__6 = XOR(key[32],plaintext[24]);
  sbox__0(des_single__14_sbox_in__0__1,des_single__14_sbox_in__0__2,des_single__14_sbox_in__0__3,des_single__14_sbox_in__0__4,des_single__14_sbox_in__0__5,des_single__14_sbox_in__0__6,&des_single__14_sbox_in__0__1,&des_single__14_sbox_in__0__2,&des_single__14_sbox_in__0__3,&des_single__14_sbox_in__0__4);
  plaintext[59] = XOR(des_single__14_sbox_in__0__1,plaintext[59]);
  plaintext[61] = XOR(des_single__14_sbox_in__0__2,plaintext[61]);
  plaintext[13] = XOR(des_single__14_sbox_in__0__3,plaintext[13]);
  plaintext[15] = XOR(des_single__14_sbox_in__0__4,plaintext[15]);
  des_single__14_sbox_in__1__1 = XOR(key[48],plaintext[32]);
  des_single__14_sbox_in__1__2 = XOR(key[43],plaintext[24]);
  des_single__14_sbox_in__1__3 = XOR(key[17],plaintext[16]);
  des_single__14_sbox_in__1__4 = XOR(key[24],plaintext[8]);
  des_single__14_sbox_in__1__5 = XOR(key[34],plaintext[0]);
  key[57] = XOR(key[57],plaintext[58]);
  sbox__1(des_single__14_sbox_in__1__1,des_single__14_sbox_in__1__2,des_single__14_sbox_in__1__3,des_single__14_sbox_in__1__4,des_single__14_sbox_in__1__5,key[57],&key[57],&des_single__14_sbox_in__1__1,&des_single__14_sbox_in__1__2,&des_single__14_sbox_in__1__3);
  key[57] = XOR(key[57],plaintext[27]);
  plaintext[39] = XOR(des_single__14_sbox_in__1__1,plaintext[39]);
  plaintext[49] = XOR(des_single__14_sbox_in__1__2,plaintext[49]);
  plaintext[53] = XOR(des_single__14_sbox_in__1__3,plaintext[53]);
  key[18] = XOR(key[18],plaintext[0]);
  key[50] = XOR(key[50],plaintext[58]);
  des_single__14_sbox_in__2__3 = XOR(key[41],plaintext[50]);
  des_single__14_sbox_in__2__4 = XOR(key[40],plaintext[42]);
  key[59] = XOR(key[59],plaintext[34]);
  des_single__14_sbox_in__2__6 = XOR(key[8],plaintext[26]);
  sbox__2(key[18],key[50],des_single__14_sbox_in__2__3,des_single__14_sbox_in__2__4,key[59],des_single__14_sbox_in__2__6,&key[18],&key[50],&key[59],&des_single__14_sbox_in__2__3);
  key[18] = XOR(key[18],plaintext[5]);
  key[50] = XOR(key[50],plaintext[3]);
  key[59] = XOR(key[59],plaintext[23]);
  plaintext[17] = XOR(des_single__14_sbox_in__2__3,plaintext[17]);
  des_single__14_sbox_in__3__1 = XOR(key[9],plaintext[34]);
  des_single__14_sbox_in__3__2 = XOR(key[16],plaintext[26]);
  des_single__14_sbox_in__3__3 = XOR(key[51],plaintext[18]);
  des_single__14_sbox_in__3__4 = XOR(key[42],plaintext[10]);
  des_single__14_sbox_in__3__5 = XOR(key[33],plaintext[2]);
  des_single__14_sbox_in__3__6 = XOR(key[56],plaintext[60]);
  sbox__3(des_single__14_sbox_in__3__1,des_single__14_sbox_in__3__2,des_single__14_sbox_in__3__3,des_single__14_sbox_in__3__4,des_single__14_sbox_in__3__5,des_single__14_sbox_in__3__6,&des_single__14_sbox_in__3__1,&des_single__14_sbox_in__3__2,&des_single__14_sbox_in__3__3,&des_single__14_sbox_in__3__4);
  plaintext[55] = XOR(des_single__14_sbox_in__3__1,plaintext[55]);
  plaintext[37] = XOR(des_single__14_sbox_in__3__2,plaintext[37]);
  plaintext[51] = XOR(des_single__14_sbox_in__3__3,plaintext[51]);
  plaintext[57] = XOR(des_single__14_sbox_in__3__4,plaintext[57]);
  des_single__14_sbox_in__4__1 = XOR(key[37],plaintext[2]);
  des_single__14_sbox_in__4__2 = XOR(key[12],plaintext[60]);
  des_single__14_sbox_in__4__3 = XOR(key[54],plaintext[52]);
  des_single__14_sbox_in__4__4 = XOR(key[6],plaintext[44]);
  des_single__14_sbox_in__4__5 = XOR(key[52],plaintext[36]);
  key[19] = XOR(key[19],plaintext[28]);
  sbox__4(des_single__14_sbox_in__4__1,des_single__14_sbox_in__4__2,des_single__14_sbox_in__4__3,des_single__14_sbox_in__4__4,des_single__14_sbox_in__4__5,key[19],&key[19],&des_single__14_sbox_in__4__1,&des_single__14_sbox_in__4__2,&des_single__14_sbox_in__4__3);
  key[19] = XOR(key[19],plaintext[1]);
  plaintext[19] = XOR(des_single__14_sbox_in__4__1,plaintext[19]);
  plaintext[63] = XOR(des_single__14_sbox_in__4__2,plaintext[63]);
  plaintext[41] = XOR(des_single__14_sbox_in__4__3,plaintext[41]);
  des_single__14_sbox_in__5__1 = XOR(key[62],plaintext[36]);
  des_single__14_sbox_in__5__2 = XOR(key[45],plaintext[28]);
  des_single__14_sbox_in__5__3 = XOR(key[20],plaintext[20]);
  des_single__14_sbox_in__5__4 = XOR(key[5],plaintext[12]);
  des_single__14_sbox_in__5__5 = XOR(key[38],plaintext[4]);
  des_single__14_sbox_in__5__6 = XOR(key[44],plaintext[62]);
  sbox__5(des_single__14_sbox_in__5__1,des_single__14_sbox_in__5__2,des_single__14_sbox_in__5__3,des_single__14_sbox_in__5__4,des_single__14_sbox_in__5__5,des_single__14_sbox_in__5__6,&des_single__14_sbox_in__5__1,&des_single__14_sbox_in__5__2,&des_single__14_sbox_in__5__3,&des_single__14_sbox_in__5__4);
  plaintext[33] = XOR(des_single__14_sbox_in__5__1,plaintext[33]);
  plaintext[31] = XOR(des_single__14_sbox_in__5__2,plaintext[31]);
  plaintext[43] = XOR(des_single__14_sbox_in__5__3,plaintext[43]);
  plaintext[45] = XOR(des_single__14_sbox_in__5__4,plaintext[45]);
  key[13] = XOR(key[13],plaintext[4]);
  des_single__14_sbox_in__6__2 = XOR(key[36],plaintext[62]);
  key[53] = XOR(key[53],plaintext[54]);
  des_single__14_sbox_in__6__4 = XOR(key[11],plaintext[46]);
  des_single__14_sbox_in__6__5 = XOR(key[30],plaintext[38]);
  des_single__14_sbox_in__6__6 = XOR(key[4],plaintext[30]);
  sbox__6(key[13],des_single__14_sbox_in__6__2,key[53],des_single__14_sbox_in__6__4,des_single__14_sbox_in__6__5,des_single__14_sbox_in__6__6,&key[13],&key[53],&des_single__14_sbox_in__6__2,&des_single__14_sbox_in__6__4);
  key[13] = XOR(key[13],plaintext[7]);
  key[53] = XOR(key[53],plaintext[35]);
  plaintext[21] = XOR(des_single__14_sbox_in__6__2,plaintext[21]);
  plaintext[9] = XOR(des_single__14_sbox_in__6__4,plaintext[9]);
  des_single__14_sbox_in__7__1 = XOR(key[60],plaintext[38]);
  des_single__14_sbox_in__7__2 = XOR(key[29],plaintext[30]);
  des_single__14_sbox_in__7__3 = XOR(key[28],plaintext[22]);
  key[14] = XOR(key[14],plaintext[14]);
  des_single__14_sbox_in__7__5 = XOR(key[3],plaintext[6]);
  des_single__14_sbox_in__7__6 = XOR(key[46],plaintext[56]);
  sbox__7(des_single__14_sbox_in__7__1,des_single__14_sbox_in__7__2,des_single__14_sbox_in__7__3,key[14],des_single__14_sbox_in__7__5,des_single__14_sbox_in__7__6,&key[14],&des_single__14_sbox_in__7__1,&des_single__14_sbox_in__7__2,&des_single__14_sbox_in__7__3);
  key[14] = XOR(key[14],plaintext[25]);
  plaintext[47] = XOR(des_single__14_sbox_in__7__1,plaintext[47]);
  plaintext[11] = XOR(des_single__14_sbox_in__7__2,plaintext[11]);
  plaintext[29] = XOR(des_single__14_sbox_in__7__3,plaintext[29]);
  key[17] = XOR(key[17],key[13]);
  key[58] = XOR(key[58],plaintext[57]);
  key[41] = XOR(key[41],plaintext[49]);
  key[2] = XOR(key[2],plaintext[41]);
  key[56] = XOR(key[56],plaintext[33]);
  key[24] = XOR(key[24],key[14]);
  sbox__0(key[17],key[58],key[41],key[2],key[56],key[24],&key[17],&key[58],&key[41],&key[2]);
  key[17] = XOR(key[17],plaintext[58]);
  key[58] = XOR(key[58],plaintext[60]);
  key[41] = XOR(key[41],plaintext[12]);
  key[2] = XOR(key[2],plaintext[14]);
  key[40] = XOR(key[40],plaintext[33]);
  key[35] = XOR(key[35],key[14]);
  key[9] = XOR(key[9],plaintext[17]);
  key[16] = XOR(key[16],plaintext[9]);
  key[26] = XOR(key[26],key[19]);
  key[49] = XOR(key[49],plaintext[59]);
  sbox__1(key[40],key[35],key[9],key[16],key[26],key[49],&key[40],&key[35],&key[9],&key[16]);
  key[40] = XOR(key[40],plaintext[26]);
  key[35] = XOR(key[35],plaintext[38]);
  key[9] = XOR(key[9],plaintext[48]);
  key[16] = XOR(key[16],plaintext[52]);
  key[10] = XOR(key[10],key[19]);
  key[42] = XOR(key[42],plaintext[59]);
  key[33] = XOR(key[33],plaintext[51]);
  key[32] = XOR(key[32],plaintext[43]);
  key[51] = XOR(key[51],key[53]);
  key[0] = XOR(key[0],key[57]);
  sbox__2(key[10],key[42],key[33],key[32],key[51],key[0],&key[10],&key[42],&key[33],&key[32]);
  key[10] = XOR(key[10],plaintext[4]);
  key[42] = XOR(key[42],plaintext[2]);
  key[33] = XOR(key[33],plaintext[22]);
  key[32] = XOR(key[32],plaintext[16]);
  key[1] = XOR(key[1],key[53]);
  key[8] = XOR(key[8],key[57]);
  key[43] = XOR(key[43],plaintext[19]);
  key[34] = XOR(key[34],plaintext[11]);
  key[25] = XOR(key[25],key[50]);
  key[48] = XOR(key[48],plaintext[61]);
  sbox__3(key[1],key[8],key[43],key[34],key[25],key[48],&key[1],&key[8],&key[43],&key[34]);
  key[1] = XOR(key[1],plaintext[54]);
  key[8] = XOR(key[8],plaintext[36]);
  key[43] = XOR(key[43],plaintext[50]);
  key[34] = XOR(key[34],plaintext[56]);
  key[29] = XOR(key[29],key[50]);
  key[4] = XOR(key[4],plaintext[61]);
  key[46] = XOR(key[46],plaintext[53]);
  key[61] = XOR(key[61],plaintext[45]);
  key[44] = XOR(key[44],plaintext[37]);
  key[11] = XOR(key[11],plaintext[29]);
  sbox__4(key[29],key[4],key[46],key[61],key[44],key[11],&key[29],&key[4],&key[46],&key[61]);
  key[29] = XOR(key[29],plaintext[0]);
  key[4] = XOR(key[4],plaintext[18]);
  key[46] = XOR(key[46],plaintext[62]);
  key[61] = XOR(key[61],plaintext[40]);
  key[54] = XOR(key[54],plaintext[37]);
  key[37] = XOR(key[37],plaintext[29]);
  key[12] = XOR(key[12],plaintext[21]);
  key[60] = XOR(key[60],plaintext[13]);
  key[30] = XOR(key[30],key[18]);
  key[36] = XOR(key[36],plaintext[63]);
  sbox__5(key[54],key[37],key[12],key[60],key[30],key[36],&key[54],&key[37],&key[12],&key[60]);
  key[54] = XOR(key[54],plaintext[32]);
  key[37] = XOR(key[37],plaintext[30]);
  key[12] = XOR(key[12],plaintext[42]);
  key[60] = XOR(key[60],plaintext[44]);
  key[5] = XOR(key[5],key[18]);
  key[28] = XOR(key[28],plaintext[63]);
  key[45] = XOR(key[45],plaintext[55]);
  key[3] = XOR(key[3],plaintext[47]);
  key[22] = XOR(key[22],plaintext[39]);
  key[27] = XOR(key[27],plaintext[31]);
  sbox__6(key[5],key[28],key[45],key[3],key[22],key[27],&key[5],&key[28],&key[45],&key[3]);
  key[5] = XOR(key[5],plaintext[6]);
  key[28] = XOR(key[28],plaintext[34]);
  key[45] = XOR(key[45],plaintext[20]);
  key[3] = XOR(key[3],plaintext[8]);
  key[52] = XOR(key[52],plaintext[39]);
  key[21] = XOR(key[21],plaintext[31]);
  key[20] = XOR(key[20],key[59]);
  key[6] = XOR(key[6],plaintext[15]);
  key[62] = XOR(key[62],key[13]);
  key[38] = XOR(key[38],plaintext[57]);
  sbox__7(key[52],key[21],key[20],key[6],key[62],key[38],&key[52],&key[21],&key[20],&key[6]);
  key[52] = XOR(key[52],plaintext[24]);
  key[21] = XOR(key[21],plaintext[46]);
  key[20] = XOR(key[20],plaintext[10]);
  key[6] = XOR(key[6],plaintext[28]);
  ciphered[0] = key[19];
  ciphered[1] = key[29];
  ciphered[2] = key[50];
  ciphered[3] = key[42];
  ciphered[4] = key[18];
  ciphered[5] = key[10];
  ciphered[6] = key[13];
  ciphered[7] = key[5];
  ciphered[8] = plaintext[9];
  ciphered[9] = key[3];
  ciphered[10] = plaintext[11];
  ciphered[11] = key[20];
  ciphered[12] = plaintext[13];
  ciphered[13] = key[41];
  ciphered[14] = plaintext[15];
  ciphered[15] = key[2];
  ciphered[16] = plaintext[17];
  ciphered[17] = key[32];
  ciphered[18] = plaintext[19];
  ciphered[19] = key[4];
  ciphered[20] = plaintext[21];
  ciphered[21] = key[45];
  ciphered[22] = key[59];
  ciphered[23] = key[33];
  ciphered[24] = key[14];
  ciphered[25] = key[52];
  ciphered[26] = key[57];
  ciphered[27] = key[40];
  ciphered[28] = plaintext[29];
  ciphered[29] = key[6];
  ciphered[30] = plaintext[31];
  ciphered[31] = key[37];
  ciphered[32] = plaintext[33];
  ciphered[33] = key[54];
  ciphered[34] = key[53];
  ciphered[35] = key[28];
  ciphered[36] = plaintext[37];
  ciphered[37] = key[8];
  ciphered[38] = plaintext[39];
  ciphered[39] = key[35];
  ciphered[40] = plaintext[41];
  ciphered[41] = key[61];
  ciphered[42] = plaintext[43];
  ciphered[43] = key[12];
  ciphered[44] = plaintext[45];
  ciphered[45] = key[60];
  ciphered[46] = plaintext[47];
  ciphered[47] = key[21];
  ciphered[48] = plaintext[49];
  ciphered[49] = key[9];
  ciphered[50] = plaintext[51];
  ciphered[51] = key[43];
  ciphered[52] = plaintext[53];
  ciphered[53] = key[16];
  ciphered[54] = plaintext[55];
  ciphered[55] = key[1];
  ciphered[56] = plaintext[57];
  ciphered[57] = key[34];
  ciphered[58] = plaintext[59];
  ciphered[59] = key[17];
  ciphered[60] = plaintext[61];
  ciphered[61] = key[58];
  ciphered[62] = plaintext[63];
  ciphered[63] = key[46];

}

/* runtime */

#define BLOCK_SIZE 64
#define KEY_SIZE   64

int main() {

  // Hardcoding a key for now...
  unsigned long key_std = 0x133457799BBCDFF1;
  DATATYPE *key_ortho = ALLOC(KEY_SIZE);
  DATATYPE *key_cst   = ALLOC(KEY_SIZE);

  for (int i = 0; i < 64; i++)
    if (key_std >> i & 1)
      key_ortho[63-i] = key_cst[63-i] = SET_ALL_ONE();
    else
      key_ortho[63-i] = key_cst[63-i] = SET_ALL_ZERO();


  // Reading the input file
  FILE* fh_in = fopen("input.txt","rb");
  fseek(fh_in,0,SEEK_END);
  long size = ftell(fh_in);
  rewind(fh_in);
  
  // Allocating various stuffs
  DATATYPE *plain_ortho  = ALLOC(BLOCK_SIZE);
  DATATYPE *cipher_ortho = ALLOC(BLOCK_SIZE);
  unsigned long *plain_std = ALLOC(size);

  // Storing the input file
  fread(plain_std,size,1,fh_in);
  fclose(fh_in);

  clock_t timer = clock();
  for (int u = 0; u < 16; u++) {
    for (int x = 0; x < size/8; x += REG_SIZE) {
  
      unsigned long* loc_std = plain_std + x;
    
      for (int i = 0; i < REG_SIZE; i++)
        loc_std[i] = __builtin_bswap64(loc_std[i]);

      ORTHOGONALIZE(loc_std, plain_ortho);
    
      memcpy(key_ortho,key_cst,KEY_SIZE*sizeof *key_cst);
      des__(plain_ortho, key_ortho, cipher_ortho);
    
      UNORTHOGONALIZE(cipher_ortho,loc_std);
    
      for (int i = 0; i < REG_SIZE; i++)
        loc_std[i] = __builtin_bswap64(loc_std[i]);
    }
  }
  printf("%f\n",size*16/(((double)clock()-timer)/CLOCKS_PER_SEC)/1e6);
  
  FILE* fh_out = fopen("output.txt","wb");
  fwrite(plain_std,size,1,fh_out);
  fclose(fh_out);

  return 0;
}
